java - JTextField 清算时的值(value)迷失

标签 java swing jtextfield string documentlistener

我正在尝试使用 Eclipse 中的 WindowBuilder 插件创建 Java Windows 应用程序。我有一个 JTextField 在输入所需值时工作正常。但是,当我清除字段中的所有内容并尝试重新输入其他值时,这些值会迷失方向,即这些值根本没有出现,或者似乎出现在下一行中。

我正在使用 DocumentListener,所以是的,这可能会导致空字符串异常。但是,我不确定为什么 JTextField 的内容在重新输入时不合适。

PFB 我的一段代码:

void computeTotal(final JTextField jtf){
    jtf.getDocument().addDocumentListener(new DocumentListener(){
        public void changedUpdate(DocumentEvent e) {
            //warn();
            getTotal();
        }
        public void removeUpdate(DocumentEvent e) {
            //warn();
            getTotal();
        }
        public void insertUpdate(DocumentEvent e) {
            //warn();
            getTotal();
        }
        public void getTotal(){
            bt = Float.parseFloat(billTotal.getText());
            bd = Float.parseFloat(billDeduction.getText()) ;
            ta = Float.parseFloat(taxAmt.getText());
            tt = bt - bd+ ta;
             totalTotal.setText(tt+"");
        }

    });
    }

这里有什么问题?

最佳答案

What is the problem here?

  • 使用Number Formatter格式化的JFormattedTextField,那么Doc​​umentListener就是正确的监听器

  • 无需解析,良好的输出没有问题,千位分隔符,不允许输入非数字字符

  • 将 DocumentFilter 与 Patern 一起使用,在那里您可以删除非数字字符,然后您可以使用相当保存的内容进行解析,其中包含数字、小数点分隔符和负数

关于java - JTextField 清算时的值(value)迷失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12766245/

相关文章:

java - 将项目打包到 JAR 中的最佳实践(和含义)是什么?

java - jTable添加多行

java - 制作自定义 JTextField (JCurrencyField)

java - java中的jtextfield只允许数字和一位小数

Java - 添加到列表时出现 ConcurrentModificationException

java - 如何使用 Nimbus 外观更改表格单元格内的 JProgressbar 条形颜色

java - 打印 Java 变量的类型

java - 如何用 JTable 搜索的列填充 JTextFields?

java - Hibernate createNativeQuery 使用 IN 子句

java - 对象输出和输入问题,仅打印输入的第一行