相关疑难解决方法(0)

问题格式化JTable中的字段 - Integer和Double之间的差异

更新

当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 $ …

java double swing jtable illegalargumentexception

5
推荐指数
2
解决办法
7062
查看次数

防止在jxtable中排序前三行

我有一个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)

java swing jtable swingx jxtable

5
推荐指数
1
解决办法
200
查看次数