uso setborder redondeados poner letras hacer dibujar crear como bordes borde java swing fonts arabic graphics2d

setborder - Dibujando texto con contorno en java



setborder java (3)

Estoy trabajando con graphcis2d en Java y actualmente estoy usando esto para dibujar texto en una imagen búfer

Font font1 = new Font("Arial", Font.PLAIN, 120); g2d.setFont(font1); FontMetrics fm1 = g2d.getFontMetrics(font1); g2d.drawString(s[1], width/2-fm1.stringWidth(s[1])/2, height/4-70);

Quiero dibujar este texto con un esquema de color diferente.

GlyphVector gv = font1.createGlyphVector(g2d.getFontRenderContext(), s[1]); Shape shape = gv.getOutline(); g2d.setStroke(new BasicStroke(4.0f)); g2d.translate(width/2-fm1.stringWidth(s[1])/2, height/4-70); g2d.draw(shape);

El problema con el uso de este método, que funciona, es que estoy trabajando con caracteres árabes y usar GlyphVector invierte el orden y no hace que las letras fluyan entre sí.

¿Puede alguien explicarme por favor cómo hacer un texto árabe en un color y un bosquejo con otro?

Aquí hay una muestra del texto que estaría usando: الرحمن


Tratar de usar

layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags)

en lugar de createGlyphVector


Un truco es dibujar el texto varias veces en el color del contorno, variando la posición por el ancho del contorno en las direcciones +/- x y +/- y, luego dibujar en el color de primer plano en la posición nominal. No es perfecto, pero tiende a verse bastante bien, siempre que el contorno no sea demasiado grueso con respecto al ancho del trazo de las letras.