我正在尝试通过扩展 DefaultTableModel 和覆盖 getColumnClass() 来对我的 JTable 进行排序,如下所示:
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
如果该表格单元格中没有 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();
}
现在,如果列中至少有一个非 NULL 的单元格,它仍然可以正常工作。 但是,如果该列中的所有单元格都是 NULL,它就不起作用(因为它返回 nullPointerException)。
请…………帮助…… 提前致谢
哈桑
最佳答案
您知道您希望每一列事先包含什么类型吗?
如果是这样,那么您可以用类对象构建一个数组,然后只返回适当的一个。
Class[] columns = new Class[]{String.class, String.class, Date.class};
public Class getColumnClass(int c) {
return columns[c];
}
关于java - 如果单元格包含 NULL,则 JTable + getColumnClass() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229187/