Posted on 2008-12-07 23:07
沙漠中的鱼 阅读(518)
评论(0) 编辑 收藏 所属分类:
Java
由于项目需要以界面的形式表示带有小数点的数据,而且让用户可以输入数据而不失精度。开始并没有重视它,以为只要把需要填入JSpinner的数据格式化就可以。事实不是这样,结果JSpinner能够正确显示数据,但是当调整数据时精度就发生了错误,怎么办呢?到网上找找,找到的都是数据格式化的方案,对我没有用,也找了一些书籍,由于JSpinner只是一个小小的组件,没有很详细的介绍,看样子,想简单地依靠别人的帮助文档是不行了,需要看看JSpinner的源代码了。。。。。
进入JSpinner的源代码,仔细分析了他的组成结构,发现JSpinner显示不同的内容,采用不同的模型,像SpinnerDateModel,SpinnerListModel,SpinnerNumberModel。于是我想只要对模型修改不就行吗?最终我解决了下面是简单的代码
JSpinner spiner = new JSpinner();
int max ,min;//数据的最大最小小数点位数
DecimalFormat format = ((JSpinner.NumberEditor) spiner.getEditor()).getFormat();
format.setMaximumFractionDigits(max);
format.setMinimumFractionDigits(min);
从上面代码看来非常简单,但是他确花费了我几个小时,希望能给有同样问题的人们有所帮助。最后还要感谢项目组另外一位同事的帮助。
转自:http://www.blogjava.net/hclown/articles/24383.html