当columnClass为Double时,确认为JTable上的错误无法将给定的Object格式化为Number(错误ID:7051636).您可以随意投票,或者如果您有替代(更好)的解决方案,请将其作为对报告的评论发布.
我正在构建一个JTable,其中包含一个扩展AbstractTableModel的自定义表模型.我的模型需要支持空行显示和排序.所以我接下来这篇文章来实现它,现在工作得很好.
我仍然遇到JTable格式化字段的问题.假设我有以下型号:
public class MyModel extends AbstractTableModel{
public Object[] types= {new Integer(0), ""};
public static final Object EMPTY_ROW = "";
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return this.EMPTY_ROW;
}
public Class<? extends Object> getColumnClass(int c) {
if (c > this.types.length - 1)
return null;
else
return this.types[c].getClass();
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常.但如果我有一个Double而不是整数:
public class MyModel extends AbstractTableModel{
public Object[] types= {new Double(0.0), ""};
.......
Run Code Online (Sandbox Code Playgroud)
我会得到一个Illegal Argument异常:
编辑:@Aaron Digulla建议后的新堆栈跟踪输出
线程"AWT-EventQueue-0"中的异常java.lang.IllegalArgumentException:无法在java.text.Format.format(Format.java)中将给定的Object格式化为java.text.DecimalFormat.format(DecimalFormat.java:487)中的数字:140)at javax.swing.JTable $ …
我有一个JXtable.我想阻止排名前三行.基本上,前3行应始终位于顶部,其余的应根据其值进行排序.
在SO上有一个类似的问题,但我不知道如何真正将它应用于我的使用 Sort ROW,除了最后一行
主要区别在于我正在使用JXTable.有一种简单的方法可以做到这一点,我错过了吗?
这是我的JXtable代码
jTable1 = new JXTable();
if (isClickable) {
jTable1.getTableHeader().setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
//set the sorter here
} else {
jTable1.setSortable(false);
}
Run Code Online (Sandbox Code Playgroud)