JTable排序整数值的问题

Tho*_*mas 2 java sorting user-interface swing jtable

目前我有一个JTable使用RowSorter,但当我点击我希望它排序的标题时,它以奇怪的顺序显示行

  • 1
  • 10
  • 11
  • ...
  • 2
  • 20
  • 21
  • ...
  • 3
  • 三十

然而,当我选择某一行时,比如第5行,它会更改标记为5的行.任何理由说明为什么会发生这种情况以及如何解决这个问题?

pra*_*mar 5

您可以通过显式设置其模型来设置JTable的列类型,如下例所示

setModel(new DefaultTableModel(new Object[0][], new String[] {
                "SELECT", "WHERE", "FIELD", "TYPE" }) {
            Class[] types = { Boolean.class, Boolean.class, String.class,
                    String.class };
            boolean[] canEdit = { true, false, false, false };

            @Override
            public Class getColumnClass(int columnIndex) {
                return this.types[columnIndex];
            }

            public boolean isCellEditable(int columnIndex) {
                return this.canEdit[columnIndex];
            }
        });
Run Code Online (Sandbox Code Playgroud)

给你的列类这样(这里第一列和第二列是布尔值,其余是String.

 Class[] types = { Boolean.class, Boolean.class, String.class,String.class };
Run Code Online (Sandbox Code Playgroud)