2013-04-09 13 views
22

Sto tentando di sottolineare una JLabel. Ho cercato ovunque, ma non ho ottenuto nulla. Anche nelle proprietà, non è disponibile un'opzione per sottolineare la JLabel. Cosa posso fare?Sottolineato JLabel

+1

Dov'è il codice? –

risposta

36
JLabel label = new JLabel("<HTML><U>YOUR TEXT HERE</U></HTML>"); 
label.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 

O

JLabel label = new JLabel("Underlined Label"); 
Font font = label.getFont(); 
Map attributes = font.getAttributes(); 
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); 
label.setFont(font.deriveFont(attributes)); 
+15

Non dimenticare di chiudere i tag! – Clark

+2

@Clark non importa – khandelwaldeval

+3

@devaldcool, anche se non importa, una buona pratica dovrebbe essere seguita come minimo per creare buone abitudini. La codifica incurante è il percorso verso il lato oscuro. La codifica incurante porta a cattive abitudini. Cattive abitudini portano a codice rotto. Il codice rotto porta alla sofferenza. – hfontanez

32
JLabel label = new JLabel("Underlined Label"); 
Font font = label.getFont(); 
Map attributes = font.getAttributes(); 
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); 
label.setFont(font.deriveFont(attributes)); 
+3

+1, per un rendering più rapido utilizzando quindi l'HTML – camickr

+4

+1. Inoltre, label.getText() restituirà ora il testo effettivo, invece del codice HTML. – splungebob

+1

Meglio usare 'Mappa attributes = new HashMap <> (font.getAttributes());' per evitare l'avviso del compilatore 'chiamata non selezionata per mettere (k v) (...)'. – Petschko