2012-08-02 35 views
15

使用HTML設計Swing元素被認爲是不好的做法?在Java Swing Elements中使用HTML樣式不好嗎?

舉個例子,如果我想打一個標籤做大紅色只有一次,我有兩個選擇:

無論是使用API​​調用:

JLabel label = new JLabel("This is a title"); 
label.setFont(label.getFont().deriveFont(18)); 
label.setForeground(Color.red); 

或使用HTML:

JLabel label = new JLabel("<html><font size='4' color='#ff0000'>This is a title"); 

此外,HTML方式允許我強調一個單詞而不是整個標籤,以及其他此類用途。

使用HTML的缺點是什麼?它更昂貴嗎?並且所有JRE的格式不保證?

+1

誰告訴你在Swing中使用HTML樣式是不好的做法?他們真丟人。它很容易就是爲許多Swing組件提供擴展渲染的最佳方法之一。我個人使用這種技術時,渲染複雜的工具提示,允許我顯示錶格和圖像等 – MadProgrammer 2012-08-02 21:45:11

+0

我一般同意你的看法。沒有人告訴我,我不應該使用它,但它只是感覺有點「髒」 – Redandwhite 2012-08-06 12:49:54

回答

5
  1. 不,這不是壞的或好的做法是使用HTML語法在Swing JComponents

  2. 今天,Java支持HTML 3.2,有降低某些CSS屬性的支持

  3. 的JTextPane並支持JEditorPane中添加和使用定位JComponents HTML語法

+0

@Redandwhite我不確定在這一刻,如果A * d * o * b * e的圖標不是......,叫它免費使用和distri ****,也許我錯了 – mKorbel 2012-08-08 10:30:41

2

Using <font> is bad甚至在HTML中。使用對象來定製字體顏色,大小等在大型應用程序中有很多工作。

幸運的是,javaFX 2已經出來了。有了它,你可以使用CSS來處理這些事情: http://www.oracle.com/technetwork/java/javafx/documentation/index.html

+0

我會同意使用字體標籤是壞的生產HTML,但考慮到我們只支持HTML 3.2和有限的CSS支持,我們有什麼選擇在這種情況下 - 如果我們想要使用Swing而不是JavaFX – MadProgrammer 2012-08-02 21:46:46

+0

那麼我會推薦使用Font對象。這是更多的工作,但更容易重複使用和維護(即,一鍵改變很多標籤,按鈕等的字體)。 – baraber 2012-08-03 00:11:53

+0

如果我使用Font對象,在大型應用程序中使用它有點繁重。我通常使用這兩種方法的組合。然而,雖然我在編寫普通的HTML時憎恨使用,但在這種特定用例中使用它時,我沒有看到問題,通常可以保證兼容性 – Redandwhite 2012-08-03 12:25:53