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

+0

아니요, 테이블에 대한 사용자 지정 렌더러를 만들어야합니다. – Kaj