java swing KeyListener 的问题~~~~急

来源:百度知道 编辑:UC知道 时间:2024/05/04 02:16:29
java swing 中有个text文本框,里面是1000,我现在想实现如下功能:鼠标单击文本框的时候把1000全部选中,然后通过键盘的上下键可以以10 的步进进行加减~~~,最好有代码~~~~~~~~~
重点是通过键盘的上下键啊~~~~~~只能是键盘的上下键进行加减

不想敲代码 如果用NetBeans做界面 那代码就太复杂了看不懂 纯手工又太麻烦了..

假设有jTextfield1和jTextfield2

注册KeyListener 就用那两个文本控件注册(为每一个文本区各写一个Listener)

实现方法 public void keyTyped(KeyEvent e)
{
jTextfield1.setText(String.valueOf(Integer.parseInt(jTextfield1.getText())+=10));
}
虽然两个注册了不同的监听器,但是由于焦点一次只能落在一个控件上..另一个控件就不会有反应..

如果你两个控件都只注册了一个监听器,那么你就需要设置一个字段来保存当前焦点在哪个控件上.然后在方法里面判断是哪个控件获得了焦点

有一个现成的控件可以使用,干嘛非要自己实现啊。
JSpinner。
不过默认实现得稍稍有点问题,你可以自己继承了,把getNextValue()与getPreviousValue()反过来。