2011-05-08 106 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