2

私はの変化をリッスンするPropertyChangeListenerためにを使用します、そしてそれは正常に動作します、そして私がそれを;と一緒に使用するとき。コードにエラーはなく、正常にコンパイルされます。ただし、このメソッドは、テキスト値に何らかの変更が発生した場合は応答を示しますが、。に関しては応答を示しません。JTextFieldsJTextAreaJTextFieldJTextArea

これが私がコードを書いた方法です

コンストラクター内:

textField_1.addPropertyChangeListener("value", new ChangeListener());
textField_2.addPropertyChangeListener("value", new ChangeListener());
textArea.addPropertyChangeListener("value", new ChangeListener());

そして、クラス内のどこか:

private class ChangeListener implements PropertyChangeListener
{
    @Override
    public void propertyChange(PropertyChangeEvent e)
    {
        Object source = e.getSource();

        if ((source == textField_1) || (source == textField_2) || (source == textArea))
        {
              System.out.println("some value changed "+ source.getClass());
        }
    }
}

これらのコンポーネントのテキスト値を変更するたびに、新しい値を使用します。

ありがとう

4

1 に答える 1

5
  • JTextAreaの変更をリッスンするためにDocumentListenerを使用します

  • このリスナーから、 PropertyChangeListenerに新しいイベントを発生させることができます

  • SSCCEPropertyChangeListenerをより早く投稿するために、必要な場合にのみ新しいイベントを発生させます。この説明からはわかりません。

于 2013-01-24T17:09:57.173 に答える