我使用下面的代码片段来创建一个JFormattedTextField。通过GUI文本字段输入值时,格式将按预期工作。但是,当我以编程方式设置该值时,不会进行格式化。我如何才能强制这种情况发生呢?
JFormattedTextField myTextField = new JFormattedTextField(new DecimalFormat("#0.###"));
// Formatting Does Not Occur
myTextField.setText("555.55555");发布于 2009-12-03 01:07:25
看一下setValue()方法
尝尝这个
myTextField.setValue(new Float("555.55555"));发布于 2009-12-03 01:58:32
添加到OTisler's answer的步骤
来自JFormattedTextField.setText()的Javadoc
请注意,text不是绑定属性,因此当它发生更改时不会触发PropertyChangeEvent。要侦听文本的更改,请使用DocumentListener。
来自JFormattedTextField.setValue()的Javadoc
设置将由从当前AbstractFormatterFactory获取的AbstractFormatter格式化的值。
https://stackoverflow.com/questions/1834233
复制相似问题