在java应用程序中仅在文本字段中输入数字

时间:2014-11-15 08:52:25

标签: java netbeans textbox numbers

DishFormPanelistIdLbl.setText("Panelist ID:");

        DishFormPanelistIdTxt.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                DishFormPanelistIdTxtActionPerformed(evt);
            }
        });

我这里有一个ID的文本标签和文本字段我想只输入文本中的数字怎么可能?一直在尝试示例程序un net beans但是他们没有这个问题的解决方案任何帮助表示感谢< / p>

"Update"

我想要的是当我输入字母时什么都不会显示但是当数字显示时它会显示

2 个答案:

答案 0 :(得分:5)

我所做的是在设计模式中我右键单击文本字段&gt;活动&gt;键&gt; KeyTyped

然后在代码中我喜欢这样的东西

private void DishFormPanelistIdTxtKeyTyped(java.awt.event.KeyEvent evt) {                                               
        // TODO add your handling code here:
        char enter = evt.getKeyChar();
        if(!(Character.isDigit(enter))){
            evt.consume();
        }
    } 

我没有在堆栈中获得解决方案,但我将链接它,这是link

答案 1 :(得分:3)

您可以使用JFormattedTextField来完成此操作。这很简单:你传递一个格式化程序(扩展AbstractFormatter),格式化程序允许你限制和修改你的字段中的显示方式。在这种情况下,您可以使用预制格式化程序NumberFormatter

NumberFormatter formatter = new NumberFormatter(); //create the formatter
formatter.setAllowsInvalid(false); //must specify that invalid chars are not allowed

JFormattedTextField field = new JFormattedTextField(formatter); //pass the formatter to the field

这也会在需要时添加逗号(例如,当您输入1000时,它会将其显示为1,000