2011-10-06 14 views
5

Ora mi sento come se avessi cercato su Internet per scoprire come aggiungere un bordo su un testo, quindi ho deciso di chiedere qui, dato che voi ragazzi conoscete sempre la risposta.Bordo spesso di stringa tirata

Quindi, in che modo, in Java, disegno un bordo di circa 2 pixel attorno a ogni lettera in una stringa disegnata su un elemento Graphics2D?

Ti piace questa:
Text with 2px border


Grazie in anticipo.

risposta

6

ho trovato una soluzione semplice in Javaworld per disegnare un profilo sul testo in Java:

g.setColor(Color.red); 
g.drawString("Outline", ShiftWest(x, 1), ShiftNorth(y, 1)); 
g.drawString("Outline", ShiftWest(x, 1), ShiftSouth(y, 1)); 
g.drawString("Outline", ShiftEast(x, 1), ShiftNorth(y, 1)); 
g.drawString("Outline", ShiftEast(x, 1), ShiftSouth(y, 1)); 
g.setColor(Color.yellow); 
g.drawString("Outline", x, y); 

In sostanza, si disegna la stessa stringa spostato in ogni direzione prima di disegnare la stringa nel colore desiderato Ciò funziona bene per un contorno di un pixel, ma non si adatta bene ai contorni spessi in quanto potrebbero esserci degli spazi negli angoli se si ripete lo spostamento più volte.

Un'altra soluzione sarebbe utilizzare una trasformazione e getOutline(), che è un metodo della classe TextLayout. Un esempio per fare schema può essere trovato here.

+1

Soluzione molto semplice! –

+0

Non proprio lì ... manca l'UP, DOWN, LEFT e RIGHT, ma è una soluzione molto bella. Lo userò. – marcolopes

+0

+1 per TextLayout.getOutline() – Andrea

Problemi correlati