2

我正在尝试使用 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+"");
        }

    });
    }

这里有什么问题?

4

1 回答 1

1

这里有什么问题?

  • 使用由 Number Formatter 格式化的 JFormattedTextField,然后是 DocumentListener 正确的监听器

  • 不需要解析,输出不错,千位分隔符没有问题,不允许输入非数字字符

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

于 2012-10-07T10:19:06.657 回答