如何设置事件监视,在JTextField中输入每一个字符都进行判断,如果输入了字母,就不往文本行里输入,反之才允许输入进去 注意是 JTextFieldJTextField 没有 下面的方法Document doc = new PlainDocument()JTextArea text = new JTextArea(doc); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以增加key的事件,具体叫什么我不清楚了,你查查API。然后判断当前按键输入的是什么,然后按照你的需求处理 监听事件是不靠谱的,按下去后确实可以删除,但是那个输入的字符要先显示到文本框里,然后被自动删除,体验相当不好PlainDocument是可以的,假如是只输入数字:import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; public class NumOnly extends PlainDocument{ public void insertString(int offs,String str,AttributeSet a) throws BadLocationException{ for(int i=0;i<str.length();i++){ if(str.charAt(i)<'0'||str.charAt(i)>'9'){ return; } } super.insertString(offs,str,a); }} jTextField.setDocument(new NumOnly()); 谢谢。但事情是这样的。我做了个计算器的程序。不是windows系统那样的计算器,是可以直接算出在JTextField输入的四则混合运算算式的计算器我同时也添加了相应的 计算器按钮,什么0-9数字 各种符号,等号,左右括号等这样,我需要实现这样的功能:在JTextField里每按一下键盘都进行判断,如果是非法字符则什么也不提示,但不允许输入的非法字符进入JTextField。如果是合法字符,则输入(但我需要不是直接往里输入,而是调用相应按钮的doclick事件,模拟点击按钮往里输入,这样就有按钮被点击的效果了,目前已经在我程序中实现了)特殊的,如果按键盘上的C,不要往JTextField输入C,而是执行计算器的清空事件。还请楼上以及各位高手指点,谢谢 同楼主,最近在搞个android可自由输入的计算器,不过我的处理方式相对简化,没法计算的直接报错好了 如何统计朝鲜语的单词个数(不是字符数)? 问个问题,关于ArrayList的 高分求助 怎么在开发的GUI界面程序中链接数据库 怎么解决一个类之间关系的问题 怎么样获得odbc数据源的路径!!!在线!!! 我想在html中输入查询关键字,对数据库进行查询,显示在jsp中,帮我看看哪错了? 正则表达式问题 java.awt.Frame的坐标0,0是哪里? 紧急求助!谁熟悉websphere的配置?或关于webshpere好的网站! 谁给我一个JDBC调用存储过程的例子 java 播放视频文件 java怎么给从键盘中输入一个值赋给一个变量,谢谢!
PlainDocument是可以的,假如是只输入数字:
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument; public class NumOnly extends PlainDocument{
public void insertString(int offs,String str,AttributeSet a) throws BadLocationException{
for(int i=0;i<str.length();i++){
if(str.charAt(i)<'0'||str.charAt(i)>'9'){
return;
}
}
super.insertString(offs,str,a);
}
}
jTextField.setDocument(new NumOnly());
这样,我需要实现这样的功能:在JTextField里每按一下键盘都进行判断,如果是非法字符则什么也不提示,但不允许输入的非法字符进入JTextField。如果是合法字符,则输入(但我需要不是直接往里输入,而是调用相应按钮的doclick事件,模拟点击按钮往里输入,这样就有按钮被点击的效果了,目前已经在我程序中实现了)
特殊的,如果按键盘上的C,不要往JTextField输入C,而是执行计算器的清空事件。
还请楼上以及各位高手指点,谢谢