JTextField 仅限制输入某些字符
我想创建 JTextField ,输入字符仅限于类似的内容 “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYWZZ0123456789+&@#/%?=~_-|!:,.;” 所以我尝试覆盖,
public class CustomJTextField extends JTextField {
String goodchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYWZZ0123456789+&@#/%?=~_-|!:,.;";
//... my class body ...//
@Override
public void processKeyEvent(KeyEvent ev) {
if(c != '\b' && goodchars.indexOf(c) == -1 ) {
ev.consume();
return;
}
else
super.processKeyEvent(ev);}}
但这不是我想要的,因为用户不能再 ctrl-c ctrl-v ctrl-x ...所以我添加
&& ev.getKeyCode() != 17 && ev.getKeyCode() !=67 && ev.getKeyCode() != 86 && ev.getKeyCode() !=0 &&
到 if 条件,但现在用户可以粘贴不适当的输入,即“(”或“<”,没有任何问题...... 我能做些什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
也许更好的方法是使用 DocumentFilter 和 模式,
maybe better would be use DocumentFilter with Pattern,
尝试 JFormattedTextField 并使用
编辑:抱歉,这是错误的代码,这是有效的代码
Try a JFormattedTextField and use
Edit: Sorry, that was the wrong code, here's the working one