限制JTextField中的字符数

时间:2010-08-21 09:24:04

标签: java swing

我尝试使用

将允许的字符数限制为5
    try {
        jFormattedTextField2.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("*****")));
    } catch (java.text.ParseException ex) {
        ex.printStackTrace();
    }

然而,当我只输入1个字符时,总会有4个其他空格被填充。如何避免填充,同时限制字符数?

3 个答案:

答案 0 :(得分:8)

JFormattedTextField导致恶意用户界面。

您想要的课程是javax.swing.text.DocumentFilter。这允许您以命令链样式修改突变。

答案 1 :(得分:1)

使用普通的JTextField代替JFormattedTextField。通过设置自定义文档,将文本字段的文档更改为仅接受特定数量的字符。

答案 2 :(得分:0)

很好的问题,Swing工具包本身并没有为JTextFields包含这个功能,这很奇怪。但是,这是我的Udemy.com课程的一个很好的答案"像孩子一样学习Java":

txtGuess = new JTextField();
txtGuess.addKeyListener(new KeyAdapter() {
    public void keyTyped(KeyEvent e) { 
        if (txtGuess.getText().length() >= 3 ) // limit textfield to 3 characters
            e.consume(); 
    }  
});

这会将猜测游戏文本字段中的字符数限制为3个字符,方法是重写keyTyped事件并检查文本字段是否已有3个字符 - 如果是,则表示"消耗&#34 34;关键事件(e),以便它不会像平常一样得到处理。

希望有所帮助:)

相关问题