java - JTextField 只接受数字和一个点

标签 java swing jtextfield

我希望我的文本字段只接受数字(数字)和一个点,因为它是用户可以在其中写入产品价格的字段。我有这段代码,但效果不佳,它只接受数字并删除。

char c=evt.getKeyChar();
if(!(Character.isDigit(c))||(c==KeyEvent.VK_BACK_SPACE)||(c==KeyEvent.VK_DELETE)){
    getToolkit().beep();
    evt.consume();
}

有人可以帮我解决这个问题吗?

最佳答案

我找到了解决这个问题的方法: 这是我写的代码

char c=evt.getKeyChar();
        if((Character.isDigit(c))||(c==KeyEvent.VK_PERIOD)||(c==KeyEvent.VK_BACK_SPACE)){
            int punto=0;
            if(c==KeyEvent.VK_PERIOD){ 
                        String s=pricefield.getText();
                        int dot=s.indexOf('.');
                        punto=dot;
                        if(dot!=-1){
                            getToolkit().beep();
                            evt.consume();
                        }
                    }
        }
        else{    
            getToolkit().beep();
            evt.consume();
        }

关于java - JTextField 只接受数字和一个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43473110/

相关文章:

java - 需要帮助修复 NullPointerException

java - 如何退出 ActionListener 中的方法

java - 如何格式化 JTextField 以使单词不会被截断?

java - JTable 删除或隐藏或禁用特定单元格?

java - 单击面板时失去对 JTextField 的关注

java - 我在哪里定义实体 "context"(未知实体 "Context") - 使用 AIDE

java - 在 :each 中包含新元素

java - 无法定义循环算法

java - JOptionPane,验证 JTextField 时关闭和取消不起作用

java - 将 html 文件加载到 JEditorPane 中