如果单元格包含NULL,则JTable + getColumnClass()返回null

Has*_*san 4 java swing jtable

我正在尝试通过扩展DefaultTableModel并覆盖getColumnClass()来对JTable进行排序,如下所示:

 public Class getColumnClass(int c) {     

  return getValueAt(0, c).getClass();
}
Run Code Online (Sandbox Code Playgroud)

如果该表格单元格中没有NULL,则它可以正常工作.所以我按照以下方式修改它:

  public Class getColumnClass(int c) {


  for(int rowIndex = 0; rowIndex < data.size(); rowIndex++){

    Object[] row = data.get(rowIndex);

    if (row[c] != null) {
        return getValueAt(rowIndex, c).getClass();
    }
  }
  return getValueAt(0, c).getClass();
 }
Run Code Online (Sandbox Code Playgroud)

现在,再次,如果列中至少有一个不是NULL的单元格,它可以正常工作.但是如果列中的所有单元格都是NULL,则它不起作用('casue它返回nullPointerException).

请............帮助....提前谢谢

哈桑

Eri*_*erg 6

您是否知道您希望每列包含哪种类型?

如果是这样,那么您可以使用类对象构建一个数组,并返回适当的数组.

Class[] columns = new Class[]{String.class, String.class, Date.class};

public Class getColumnClass(int c) {  
     return columns[c];
}
Run Code Online (Sandbox Code Playgroud)