我使用以下代码将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的正确方法是什么?
答案 0 :(得分:2)
我无法重现您举报的例外情况;目前尚不清楚为什么你会抓住<div class="input-group custom-search-form">
<input type="text" class="form-control" placeholder="Testing" ng-model="searchBooking" ng-change="printValue()">
<span class="input-group-btn">
<button class="btn btn-default" type="button">
<i class="fa fa-search"></i>
</button>
</span>
</div>
。下面的完整示例可以帮助您孤立地研究问题。特别是,
添加第二个组件可以让您看到焦点变化的效果。
使用Exception
指定初始尺寸。
setColumns()