如何真正实现屏蔽键盘输入的jtextfield。。。。。。。高分。。急 我给jtextfield添加了 键盘监控,将获的的值用setText()副给jtextfield但是,问题是每次jtextfield接受一个键盘值后总是再后面多显示一个小写的字母,比方我按下A ,用setText给文本框后,总是多出一个a结果就是:A aaa...我想只接受setText的值,而不要直接输入的值应该怎么弄呢。我不要setEditabled..灰掉要看上去还有光标。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给这个JtextFeild添加事件监听试试。 如果是要接受keylistener的值而不在textfiled里显示的话,就在触发按键的事件里,对textfield进行处理。比如,每次在接受完键盘的按键后,textfield调用setText(""); 请您给个代码看看我是这么写的:public class KeyAdapterImpl extends KeyAdapter { // do something .. .}JTextField jf = new JTextField(5);jf.addKeyListener(new KeyAdapterImpl()); 楼主具体想要实现什么功能呢?看得我有点云里雾里的,若是想直接输入就一个jtextarea就可以了,若是想截获键盘按键,那和jtextarea没有关系啊,干吗监听jtextarea的键盘按键呢有些困惑 实现keyTyped函数,并且调用keyevent.consume(); 我确实不知道你这样做的原因,但我想也许你有你的理由吧。你要屏蔽键盘输入是非常简单,但是,具体操作起来可就费劲了。你可以这样f.setActionMap(null);或者field.setInputMap(JComponent.WHEN_FOCUSED, null);这样,键盘输入不起作用了。但是使用监听仍然可以捕获键盘事件。不过,在处理一些特殊键的时候会比较复杂,比如组合键,delete键。一般不建议将一个控件的所有inputMap和ActionMap都清掉。但是似乎你所说的却又完全是都去掉的样子~~import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JTextField;public class TextFieldTest { public static void main(String args[]) { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JTextField field = new JTextField(20); Container c = f.getContentPane(); c.setLayout(new BorderLayout()); c.add(field); field.setInputMap(JComponent.WHEN_FOCUSED, null); field.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { //这里自己看怎么玩吧 System.out.println(e.getKeyChar()); } }); f.pack(); f.setVisible(true); }} 可是实现了keytyped 后,怎么判断是按下还是释放?? 如果你说的是键盘的事件。那就在keyPressed和keyReleased方法里进行相应操作。 java怎么把本地图片以最快的速度读入inputstream里面? 关于一个线程死锁的例子,求教。 java socket问题 网页插入applet,安装控制台? 求救有关打包成jar的问题 怎么使用.ico文件呀? 关于类似于 类.class 和 类.this 作为参数的问题 用程序能不能判断jpg等图片文件的大小,若能应该怎样做,请指教? j2SDK帮助文件在哪下载? 一台装了jws1.0.1的机器为什么在运行applet的时候,系统提示安全错误。 请问,final变量和final类存储在哪里? 父类构造方法重写的问题
比如,每次在接受完键盘的按键后,textfield调用setText("");
我是这么写的:
public class KeyAdapterImpl extends KeyAdapter {
// do something .. .
}JTextField jf = new JTextField(5);
jf.addKeyListener(new KeyAdapterImpl());
你要屏蔽键盘输入是非常简单,但是,具体操作起来可就费劲了。
你可以这样
f.setActionMap(null);或者field.setInputMap(JComponent.WHEN_FOCUSED, null);
这样,键盘输入不起作用了。但是使用监听仍然可以捕获键盘事件。
不过,在处理一些特殊键的时候会比较复杂,比如组合键,delete键。一般不建议将一个控件的所有inputMap和ActionMap都清掉。但是似乎你所说的却又完全是都去掉的样子~~import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JTextField;public class TextFieldTest { public static void main(String args[]) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTextField field = new JTextField(20);
Container c = f.getContentPane();
c.setLayout(new BorderLayout());
c.add(field); field.setInputMap(JComponent.WHEN_FOCUSED, null);
field.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
//这里自己看怎么玩吧
System.out.println(e.getKeyChar());
}
});
f.pack();
f.setVisible(true);
}
}