我正在尝试使用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+"");
}
});
}
这里有什么问题?
答案 0 :(得分:1)
这里有什么问题?
使用由Number Formatter格式化的JFormattedTextField,然后是DocumentListener正确的侦听器
不需要解析,没有好的输出问题,thoushand分隔符,不允许输入非数字字符
使用带有Patern的DocumentFilter,在那里你可以删除非数字字符,然后你可以解析相当保存的竞争包含数字,小数分隔符和否定唱歌