我正在尝试使用 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,那么DocumentListener就是正确的监听器
无需解析,良好的输出没有问题,千位分隔符,不允许输入非数字字符
将 DocumentFilter 与 Patern 一起使用,在那里您可以删除非数字字符,然后您可以使用相当保存的内容进行解析,其中包含数字、小数点分隔符和负数
关于java - JTextField 清算时的值(value)迷失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12766245/