黑马程序员技术交流社区
标题:
关于GUI的问题
[打印本页]
作者:
wst423
时间:
2015-11-17 00:06
标题:
关于GUI的问题
今天我在学习GUI界面的时候模拟了老师写的一个程序 发现一个问题 希望各位帮忙解惑 代码如下:
import java.awt.*;
import java.awt.event.*;
class ButtonTool1
{
ButtonTool1()
{
abcde();
}
public void abcde()
{
Frame f = new Frame("new Frame");
f.setBounds(300,200,500,300);
f.setLayout(new FlowLayout());
TextField t = new TextField(20);
f.add(t);
inputEventDemo1(t);
f.setVisible(true);
}
public void inputEventDemo1(TextField t)
{
t.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
int i = e.getKeyCode();
if(i<=KeyEvent.VK_0 && i>=KeyEvent.VK_9)
{
System.out.println(i+"不是数字");
e.consume();
}
}
});
}
}
class ButtonDemo1
{
public static void main(String ages[])
{
new ButtonTool1();
}
}
我希望的是程序运行后我在TextField框中能把键盘上除了0-9以外的数字剔除并禁止其写入,但结果却是所有字符都能写入
作者:
wst423
时间:
2015-11-17 00:08
如果是用老师的方法 把 if(i<=KeyEvent.VK_0 && i>=KeyEvent.VK_9) 改成if(!(i>=KeyEvent.VK_0 && i<=KeyEvent.VK_9)) 程序是OK的
作者:
黑夜中那颗星
时间:
2015-11-17 12:13
if(i>=KeyEvent.VK_0 && i<=KeyEvent.VK_9) 这样比较符合逻辑,这是我个人见解
你这个只能输入键盘的左边数字,右边还有一个
if((i>=KeyEvent.VK_0 && i<=KeyEvent.VK_9) || (i>=KeyEvent.VK_NUMPAD0 && i<=KeyEvent.VK_NUMPAD9))
改成这样就好了
作者:
wst423
时间:
2015-11-17 16:43
黑夜中那颗星 发表于 2015-11-17 12:13
if(i>=KeyEvent.VK_0 && i=KeyEvent.VK_0 && i=KeyEvent.VK_NUMPAD0 && i
怪不得我用右边那块键盘的时候会显示97不是数字
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2