java关于JTextField设置键盘输入事件
2015-02-10 17:24
337 查看
直接上代码,JTextField设置只能输入数字的事件:
jt.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
// TODO 自动生成的方法存根
int key = e.getKeyChar();
System.out.println(key);
if (!(key >= KeyEvent.VK_0 && key <= KeyEvent.VK_9)) {
e.consume(); //取消输入事件
}
}
});
注意:这里的事件重写的事件只能是keyTyped,而事实上这个方法最符合实际建议输入事件重写的方法都用这个(事实上你在使用其他事件如keyPressed那么就没法限制输入了,已测试),而该方法中只能用e.getKeyChar()方法,不能使用getKeyCode()(对于
而在TextField中则可以用不同的事件调用不同的方法也可实现限制输入数字:
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
// TODO 自动生成的方法存根
// char ch=e.getKeyChar();
//
// //类似c#中的设置方法,同时让键盘上的退格键也能使用
// if(!((ch>='0'&&ch<='9')||(int)ch==KeyEvent.VK_BACK_SPACE)){
// e.consume();
// }
int key=e.getKeyCode();
//System.out.println(key);
if(!(key>=KeyEvent.VK_0&&key<=KeyEvent.VK_9)){
e.consume();
}
}
});
jt.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
// TODO 自动生成的方法存根
int key = e.getKeyChar();
System.out.println(key);
if (!(key >= KeyEvent.VK_0 && key <= KeyEvent.VK_9)) {
e.consume(); //取消输入事件
}
}
});
注意:这里的事件重写的事件只能是keyTyped,而事实上这个方法最符合实际建议输入事件重写的方法都用这个(事实上你在使用其他事件如keyPressed那么就没法限制输入了,已测试),而该方法中只能用e.getKeyChar()方法,不能使用getKeyCode()(对于
KEY_TYPED事件,该 keyCode 为
VK_UNDEFINED。)
而在TextField中则可以用不同的事件调用不同的方法也可实现限制输入数字:
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
// TODO 自动生成的方法存根
// char ch=e.getKeyChar();
//
// //类似c#中的设置方法,同时让键盘上的退格键也能使用
// if(!((ch>='0'&&ch<='9')||(int)ch==KeyEvent.VK_BACK_SPACE)){
// e.consume();
// }
int key=e.getKeyCode();
//System.out.println(key);
if(!(key>=KeyEvent.VK_0&&key<=KeyEvent.VK_9)){
e.consume();
}
}
});
相关文章推荐
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- C# 计算器 如果设置键盘输入的监听事件
- 关于JTextField在输入监听时改变自身text而发生的JTextField java.lang.IllegalStateException
- Java键盘事件监听(2)修改:使用监听键盘事件,而不是改写JTextField
- 刚学java的小白想问个关于读取键盘输入数字的问题
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- Java键盘事件监听(2)修改:使用监听键盘事件,而不是改写JTextField
- 关于java JDK安装(已经设置好了配置 命令行却输入javac却没有反应)
- Java模拟鼠标键盘输入事件 --- Robot 类
- Java键盘事件监听(2)修改:使用监听键盘事件,而不是改写JTextField
- JAVA中关于键盘输入的几个问题
- Java 设置JTextField组件的焦点事件
- JAVA JTable 关于表格初始化设置、表格事件监听及数据更新问题
- 键盘输入的事件讨论
- Java Swing中的键盘事件处理
- Java中模拟鼠标和键盘输入
- 首先需要安装JDK 6 sudo apt-get install sun-java6-jdk 之后需要设置默认的java程序 sudo update-alternatives --config java 按照提示输入对应的选项,指定为JDK 6
- 键盘 事件处理 -Java学习笔记(37)
- 关于键盘事件中keyCode、which和charCode 的兼容性测试
- 关于键盘输入