2012-04-08 70 views
0
public class Text extends JPanel { 

private String text; 


    public Text() 
    { 
    this.setPreferredSize(new Dimension(20,20)); 
    setFont (new Font(text, Font.PLAIN, 24)); 
    text = ""; 
    } 

    public void showUnderline() 
    { 

    Hashtable<TextAttribute, Object> map = new Hashtable 
    <TextAttribute, Object>(); 

    map.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); 
    } 

該文本對象將在另一個類中創建。在那個類中,我需要用showUnderline方法來強調它。該方法似乎不完整。
我正在爲java獨佔方式拍攝,意思是沒有HTML。
如何將文本鏈接到showUnderline方法?當文本是字段時,如何爲文本加下劃線「text」?

+3

考慮告訴細節 - 這是擺動嗎?一個JTextArea?的JTextPane?還有別的嗎?什麼? – 2012-04-08 19:11:35

+0

謝謝,這是更好嗎? – user1320668 2012-04-08 19:13:44

+0

您可能需要調用paint方法並設置屬性 – 2012-04-08 19:22:03

回答

4

你是什麼意思'java exclusive approach,意思是沒有HTML'?您可能正在尋找一個JLabel,並且可以在其中放入非常簡單的html。下面是對谷歌的第一個結果:

http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-JLabel.html

它使文本不同的顏色,字體和粗體或斜體的例子。你可能只是做類似的事情:

JLabel label = new JLabel("<u>MY TEXT</u>",JLabel.CENTER); 

從那裏,你可以把它放置就像你會放置任何其他JComponent。

如果你真的不想HTML,你可以使用JTextPane。這裏有一個例子:

http://www.exampledepot.com/egs/javax.swing.text/style_hilitewords2.html

+0

+1,HTML確實是最簡單的方法。 – Jeffrey 2012-04-08 19:22:46

+1

'new JLabel(「 MY TEXT」,JLabel.CENTER);'Nu-uh,我認爲它會更喜歡..'new JLabel(「 MY TEXT「);'注意1),除非String以'html'元素開頭,否則不會解釋爲HTML。 2)在HTML中設置的樣式忽略'JLabel'對齊約束。 – 2012-04-08 19:35:23