【发布时间】:2011-06-21 10:55:07
【问题描述】:
...
float value = Float.parseFloat((String)model.getValueAt(e.getLastRow(), 1));
DecimalFormat dec = new DecimalFormat("#.###");
model.setValueAt(dec.format(value), e.getLastRow(), 1);
...
在第三行,我得到了 stackOverflowError 异常。我打算从 Object 获取 JTable 单元格值,将其转换为浮点数,将其限制为 3 个小数位,最后转换为 String 并在单元格处设置 3 个小数位的值。
我想问题是我正在更改值,并一次又一次地输入函数。所以 StackOverflow 就是由于这个原因。问题是,我该如何解决这个问题?
完整功能在:Java: Converting data types (抱歉发了两次......这是一个不同的问题,解决方案让我遇到了另一个问题)
【问题讨论】:
-
您确定您没有多次调用自己导致错误吗?实际的堆栈跟踪是什么?
-
我知道问题的出现是因为 setValueAt 触发了另一个 tableChanged() 事件。但我不知道如何避免它!
标签: java model jtable stack-overflow