2013-04-17 53 views
0

我想在我的JTable的第二列中對整數進行排序。我使用table.setAutoCreateRowSorter(true);,但它是按字符串排序的。我正在嘗試編寫一些代碼來解決這個問題,但我無法實現它。setAutoCreateRowSorter不適用於Int的

DefaultTableModel m = new DefaultTableModel(); 
String columnName = "Occurrences"; 
m.addColumn("String"); 
m.addColumn(columnName); 
JTable table = new JTable(m); 
table.setAutoCreateRowSorter(true); 


if (m.findColumn(columnName) == 2) 
    { 
      return Integer.class; 
    } else { 

      return null; 
    } 

這是我能得到這個即使添加Class<Integer>到我的函數編譯的唯一途徑。這不起作用

回答

4

您的代碼不是很清楚,但如果你想在第二列類是Integer,你只需要重寫它:

DefaultTableModel m = new DefaultTableModel() { 
    @Override 
    public Class<?> getColumnClass(int column) { 
     if (column == 1) { 
      return Integer.class; 
     } 
     return super.getColumnClass(column); 
    } 
}; 
+0

我收到此錯誤'回報super.getColumnClass(column);'方法getColumnClass(int)未定義類型對象 – user2007843

+0

然後你沒有使用我在我的答案給你的代碼。此方法必須位於DefaultTableModel的匿名子類中。 –

+0

有沒有辦法將一列定義爲一個整數列? – user2007843

相關問題