我有一个带有7列的JTable,其中第6列是布尔值(复选框)。我想只有在选中第6列中的布尔值时才能使第7列的单元格变为可编辑。例如,如果选中(2,6),我希望只有(2,7)可以编辑。
以下代码使整行可编辑(但我希望单元格位于布尔值右侧):
@Override
public boolean isCellEditable(int row, int col) {
if (col == 5) // 0-indexed (6th col)
return true;
else
return ((Boolean) getValueAt(row, 5)).booleanValue();
}
之后,我想要一种快速获取所有已检查行的方法,这样我就可以获得每行的第7列的值。
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ManagerDisplay$1.isCellEditable(ManagerDisplay.java:82)
at javax.swing.JTable.editCellAt(JTable.java:3500)
答案 0 :(得分:2)
如果我理解正确,你只需要这个:
@Override
public boolean isCellEditable(int row, int col) {
if (col == 5) // 0-indexed (6th col)
return true;
else if (col == 6) // 7th col
return ((Boolean) getValueAt(row, 5)).booleanValue();
else // every other column
return false;
}