2011-02-25 41 views
4
JLabel label = new JLabel("<html><body>Hello world</body></html>"); 

說明不了什麼。HTML中的JLabel沒有顯示

如果我擺脫標籤,它顯示了純文本(如預期),所以肯定是被添加的JLabel和窗口上顯示。

同樣爲:

JEditorPane jep = new JEditorPane("text/html", "<html><body>Hello world</body></html>"); 

任何想法?

我在Eclipse上使用java-6-openjdk。更多細節:

[email protected]:~$ java -version 
java version "1.6.0_20" 
OpenJDK Runtime Environment (IcedTea6 1.9.5) (6b20-1.9.5-0ubuntu1~10.04.1) 
OpenJDK Server VM (build 19.0-b09, mixed mode) 

[email protected]:~$ javac -version 
javac 1.6.0_24 
+2

您的代碼適用於Java(TM)SE運行時環境。 – dogbane 2011-02-25 15:43:11

+0

_如果要在文本中混合字體或顏色,或者要格式化爲多行,則可以使用HTML。 HTML格式可用於所有Swing按鈕,菜單項,標籤,工具提示和選項卡式窗格以及使用標籤呈現文本的樹和表格等組件中._ **您嘗試實現何種格式? ** – Alpine 2011-02-25 16:00:35

+1

參見本實施例中[HtmlDemo.java](http://download.oracle.com/javase/tutorial/uiswing/examples/components/HtmlDemoProject/src/components/HtmlDemo.java) – Alpine 2011-02-25 16:05:23

回答

5

如果你想混在文本內的字體或顏色 ,或者如果你想 爲多行等格式,你 可以使用HTML。 HTML格式可以在所有的Swing按鈕,菜單項, 標籤,工具提示可以 使用,標籤式窗格, 以及在部件如樹木 和使用標籤來呈現 文本表。

參考這個例子HtmlDemo.java


在您的例子

JLabel label = new JLabel("<html><body>Hello world</body></html>"); 

你未施加任何格式化像<b>bold</b><i>italic</i>等。

<body></body>不是必需的。

希望它有幫助。

1

我已經使用了最新的Windows JDK測試你的JLabelJEditorPane代碼在Eclipse中使用幾種不同的外觀和感覺,但他們所有的工作就好了。我知道你使用的是OpenJDK,但我無法掌握Windows的版本。我猜這兩個實現是有區別的。

我可以建議包裝一個段落中的文字,如"<html><body><p>Hello world</p></body></html>"