最近做GUI界面时,经常遇到要求用户输入一些信息,怎样做来防止用户输入一些非法字符,做一些类型检查,尽管我尝试过使用异常捕获方法,可处理过后用户也就不能再纠正自己的输入了,请教如何做才能让用户在接到弹出窗口警告后能修正错误输入?
解决方案 »
- byte[]数组与String转换
- Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
- 程序中从脚本读出创建存储过程的语句后用execute执行如何知道存储过程是否创建成功?
- 请教一下哥哥姐姐们一个小问题
- 请教算法!4个数组的比较问题?
- 继续求教,写java程序打jar包问题
- 只使用Java 1.1的版本API,如何获得Exception.printStackTrace()所打印的所有信息?主要是异常发生位置信息
- 关于我用JDBC访问数据库问题(用windows身份验证)
- 请教高手:java应用程序中如何调用显示本机html文件
- 菜鸟跪求大侠帮忙
- 高分请教高手JDBC的问题,实在不知道那里错了。。在线等
- Java如何解析vc6生成的索引文件?
写键盘事件,比如你只要用户输入数字,那字母的键就屏蔽了吧
2
都输入完在提交的时候做检查,可以用正则,或者手动比较,最后得出通过,或者警告信息
force定位到错误的位置
public class IllegalDocument
extends PlainDocument {
JTextField textField;
public IllegalDocument(JTextField textField) {
this.textField = textField;
} public void insertString(int offset, String s, AttributeSet attributeSet) throws
BadLocationException {
try{
String text = textField.getText()+s;
if(text==你定义的非法字符){
//比如用户输入了fuc,如果还想输入k的话,就不让他输入了
Toolkit.getDefaultToolkit().beep();
return;
}
}catch(Exception e){
Toolkit.getDefaultToolkit().beep();
return;
}
super.insertString(offset,s,attributeSet);
}
}调用这个类就是
JTextField textField = new JTextField();
textField.setDocument(new IllegalDocument(textField));