2011-05-08 53 views
0

這是「AddEntry」類的一部分。文本字段的顏色僅在第一個文本字段中更改,而不是全部四個。jTextField顏色問題。顏色不在jTable中顯示

private class HandlerClass implements ItemListener { 
    public void itemStateChanged(ItemEvent event) { 

     if (friend.isSelected()) 
     { 
     jTextField1.setForeground(Color.BLUE); 
     jTextField2.setForeground(Color.BLUE); 
     jTextField3.setForeground(Color.BLUE); 
     jTextField4.setForeground(Color.BLUE); 
     } 

一旦輸入了數據,用戶就將其添加到jTable中。

jButton1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent e) { 
      AddressBookMain.addEntry(new AddressBook(jTextField1.getText(), jTextField2.getText(), jTextField3.getText(), jTextField4.getText())); 
     } 
    }); 

驅動程序將聯繫人數據添加到jTable,但顏色不顯示。他們回黑。我如何保持顏色的變化?

`jButton1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent e) { 
      new AddEntry().setVisible(true); 
     } 
    });` 

回答

1

從JTextFields獲得的文本只是普通的香草字符串,並且字符串沒有顏色。

您需要爲JTable創建自定義單元格渲染器。你可以在這裏閱讀關於渲染器: How to Use Tables in the Swing tutorial

+0

將複選框/顏色標籤按鈕移動到JTable所在的驅動程序是否會更好?僅僅改變簡單的字符串是沒有意義的,這正是我害怕我所做的。再次感謝Kaj。 – STANGMMX 2011-05-08 19:22:06

+0

不,您仍然需要爲表格創建自定義渲染器。 – Kaj 2011-05-08 19:28:45