2012-02-04 11 views
13

Zasadniczo mam JTextPane do przechowywania tekstu, który chcę stylu. JTextArea byłaby dla mnie lepsza w użyciu, ale powiedziano mi, że nie możesz w nim napisać stylu?Stylizowanie tekstu w JTextArea lub JTextPane

Jednak JTextPane nie wydaje się poprawnie stylu. Na przykład, następujący kod jest właśnie wrócił z HTML obejmowały:

public static void main(String[] args) { 
    JFrame j = new JFrame("Hello!"); 
    j.setSize(200,200); 
    JTextPane k = new JTextPane(); 
    k.setText("<html><strong>Hey!</strong></html>"); 
    j.add(k); 
    j.setVisible(true); 
} 

Chcę być w stanie po prostu styl trochę tekstu w JTextPane, gdy użytkownik wchodzi w interakcję z interfejsem, ale do tej pory, to po prostu zwraca ciąg znaków z kodem HTML! Wsparcie!

Odpowiedz

6

Poinformuj Javę, że będzie to HTML przy użyciu metody setContentType.

k.setContentType("text/html"); 
3

używam wyglądać i czuć (substancja) i wywołanie setContentType("text/html") ma problemy z czcionki wyświetlanej. Rozwiązałem to przez wywołanie:

textPane.putClientProperty(JTextPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE); 

Inną opcją jest owijanie tekst HTML w JLabel. Twój przykład następujący kod jest:

JTextPane k = new JTextPane(); 
k.insertComponent(new JLabel("<html><strong>Hey!</strong></html>")); 
+0

Korzystanie 'JTextArea' jest często lepsze niż przy użyciu' 'JLabel' bo przewija JTextArea' lepiej w' JScrollPane' i pozwala użytkownikowi wybrać i skopiować tekst. Dzięki za informację o Substancji Look and Feel. Używam go również, aby wskazówka była pomocna. – Enwired

Powiązane problemy