我正在尝试通过扩展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).
请............帮助....提前谢谢
哈桑
您是否知道您希望每列包含哪种类型?
如果是这样,那么您可以使用类对象构建一个数组,并返回适当的数组.
Class[] columns = new Class[]{String.class, String.class, Date.class};
public Class getColumnClass(int c) {
return columns[c];
}
Run Code Online (Sandbox Code Playgroud)