これに対していくつかの異なるアプローチを試みましたが、これまでのところ成功していません。私は何かが足りないのだろうかと思った。カレンダーと一緒にDateSelectorウィジェットのコンポーネントであるJSpinnerがあります。ユーザーがカレンダーコントロールまたはJSpinnerの上下の矢印を使用する代わりに、JSpinnerのテキストを変更した場合に、検証メソッドを起動しようとしています。
これが私が試したさまざまなアプローチです:
jSpinner1.addKeyListener(kl);
jSpinner1.getEditor().addKeyListener(kl);
((JSpinner.DefaultEditor) jSpinner1.getEditor().getTextField().addKeyListener(kl);
誰かが私が間違っていることについて何かアイデアを持っていますか?ありがとう
UPDATE 申し訳ありませんが、JSpinnerに接続されているJSpinnerDateModelにChangeListenerをすでに追加していると言っておく必要があります。そのようです:
ChangeListener changeListener = new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
dateChanged();
}
};
jSpinnerDateModel.addChangeListener(changeListener);
KeyListener keyListener = new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyChar());
dateChanged();
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
};
((JSpinner.DefaultEditor) jSpinner1.getEditor()).getTextField().addKeyListener(
keyListener);
ありがとう
フランク