1
我使用下面的代码NumberFomatterFactory设置为具有JFormattedTextField:将NumberFomatterFactory设置为JFormattedTextField的正确方法是什么?
try{
JFormattedTextField ccyTxt = new JFormattedTextField();
DecimalFormat ccyTxtFormat = (DecimalFormat) DecimalFormat.getNumberInstance();
ccyTxtFormat.setMaximumIntegerDigits((int) 13);
ccyTxtFormat.setMaximumFractionDigits((int) 5);
ccyTxtFormat.setMinimumIntegerDigits(0);
ccyTxtFormat.setMinimumFractionDigits(0);
NumberFormatter ccyTxtFormatter = new NumberFormatter(ccyTxtFormat);
ccyTxtFormatter.setAllowsInvalid(true);
DefaultFormatterFactory ccyTxtDecimalFormatterFactory = new DefaultFormatterFactory(ccyTxtFormatter);
ccyTxt.setFormatterFactory(ccyTxtDecimalFormatterFactory);
} catch(Exception ex) {
ex.printStackTrace();
}
但是,越来越例外如下:
java.lang.IllegalArgumentException: Cannot format given Object as a Number
at java.text.DecimalFormat.format(DecimalFormat.java:487)
at java.text.Format.format(Format.java:140)
什么是设置NumberFomatterFactory到JFormattedTextField中正确的方法是什么?
1)请学习常见的Java命名(命名约定 - 例如'EachWordUpperCaseClass','firstWordLowerCaseMethod()','firstWordLowerCaseAttribute'除非它是一个'UPPER_CASE_CONSTANT'),并用它一致。 2)使用合乎逻辑的一致形式缩进代码行和块。缩进旨在使代码的流程更易于遵循! 3)为了更快地获得更好的帮助,请发布[MCVE]或[简短,独立,正确的示例](http://www.sscce.org/)。 –