【发布时间】:2010-10-06 15:00:00
【问题描述】:
已经尝试了几种不同的方法,但到目前为止都没有成功。只是想知道我是否遗漏了什么。我有一个 JSpinner,它是日历旁边的 DateSelector 小部件的一个组件。如果用户更改 JSpinner 中的任何文本而不是使用 Calendar 控件或 JSpinner 上下箭头,我将尝试触发验证方法。
以下是我尝试过的不同方法:
jSpinner1.addKeyListener(kl);
jSpinner1.getEditor().addKeyListener(kl);
((JSpinner.DefaultEditor) jSpinner1.getEditor().getTextField().addKeyListener(kl);
有人知道我做错了什么吗?谢谢
更新 抱歉,我应该说我已经将 ChangeListener 添加到附加到 JSpinner 的 JSpinnerDateModel 中。像这样:
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);
谢谢
弗兰克
【问题讨论】:
标签: java swing listener keylistener jspinner