JTextField仅限于某些字符的输入 [英] JTextField limit input to certains chars only

查看:200
本文介绍了JTextField仅限于某些字符的输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建JTextField,其输入字符仅限于某些内容,例如
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYWZZ0123456789 +& @#/%?= ~_- |!:,.;
所以我尝试覆盖

i'd like to create JTextField with input characters limited to someting like "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXYWZZ0123456789+&@#/%?=~_-|!:,.;" so i tried overriding

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 ...所以我加入了

but it isn't what i want because user cannot ctrl-c ctrl-v ctrl-x any more... so i addeded

&& ev.getKeyCode() != 17 && ev.getKeyCode() !=67 && ev.getKeyCode() != 86 && ev.getKeyCode() !=0 &&

if条件,但现在用户可以粘贴不适当的输入,即'('或'< ;',没有任何问题...
我该怎么办?

to the if condition, but now the user can paste inappropriate input, ie '(' or '<', without any problem... what can i do?

推荐答案

也许更好用 DocumentFilter 模式

这篇关于JTextField仅限于某些字符的输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆