2011-04-25 5 views
3

DocumentListener에도 event.getSource와 같은 것이 있습니까? 텍스트가 변경되는 JTextField 하나의 색상 만 변경하려고합니다. DocumentListener를위한 .getSource() 같은 것이없는 경우문서가 배치 된 JTextField 이름을 가져 오는 방법은 무엇입니까?

DocumentListener posluchac = new DocumentListener() { 
     public void changedUpdate(DocumentEvent e) { 
      warn(e); 
     } 
     public void removeUpdate(DocumentEvent e) { 
      warn(e); 
     } 
     public void insertUpdate(DocumentEvent e) { 
      warn(e); 
     } 
     public void warn(DocumentEvent e) { 
      txtName.setBackground(Color.WHITE); 
      txtSurname.setBackground(Color.WHITE); 
      txtPersonalNumber.setBackground(Color.WHITE); 
      txtDateOfBirth.setBackground(Color.WHITE); 
     } 
    }; 

: 여기 내의 DocumentListener입니다. 그것을하는 방법?

답변

4

다른 수신기와 마찬가지로 getSource()은 없지만 문서 클래스의 putProperty()getProperty()을 사용하면 원하는 것을 얻을 수 있습니다. 전자 내가 putProperty을 사용했다 DocumentEvent

+0

입니다

당신이

JTextField jTextField = new JTextField("Text 1"); jTextField.getDocument().putProperty("parent", jTextField); 

이후의 DocumentListener의 이벤트에서 작업을 수행 할 수 있습니다

, 당신은이

JTextField textField = (JTextField) e.getDocument().getProperty("parent"); 

같은 부모를 얻을 수 있습니다 대신에 setProperty. 귀하의 회신은 많은 도움이되었습니다. 선생님 고마워요. – Stepan

+0

@Stepan 그것이 내가 의미했던 것입니다. 나는 대답을 편집했다. –

관련 문제