JTextField에 documentListener가 있습니다. 이 텍스트 필드에 문자를 추가하거나 제거 할 때 배경색을 변경하고 싶습니다. 내가 올바른 문서 수신기를 사용해야합니까? 작동하지만,이 JTextfield에 초점을 맞추지 않으면 불이납니다. 이 JTextField에 포커스 리스너를 추가하지 않습니다. 여기 내 코드, 내 문제를 해결할 수있는 방법에 대한 제안은 무엇입니까?포커스를 변경할 때 insertUpdate가 내 DocumentListener에서 호출되는 이유는 무엇입니까? (Java Swing)
numPlotRowsJTextField = BasicComponentFactory.createIntegerField(valueModelNumberPlotRowsJTextField);
numPlotRowsJTextField.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void removeUpdate(DocumentEvent e)
{
}
@Override
public void insertUpdate(DocumentEvent e)
{
numPlotRowsJTextField.setBackground(Color.cyan);
}
@Override
public void changedUpdate(DocumentEvent e)
{
}
});
또한이 문제의 근본 원인이라고 생각되는 JGoodies Binding을 사용 중입니다. JGoodies가없는 스윙은 포커스를 변경하여 문서 수신기 이벤트를 시작해서는 안됩니다 ...
JGoodies Binding이 어떻게 든 나를 엉망으로 만들고 있다고 생각합니다. 초점을 변경해도 DocumentListener가 insertUpdate를 시작하도록해야합니다. 아마도 JGoodies 버퍼링 된 입력을 사용하고 있고 입력을 쉽게 재설정 할 수있는 방아쇠와 관련이 있습니다. 어떤 JGoodies 바인딩 전문가가 있습니까? – smuggledPancakes