Disabling Selections in a JTable Component
The only way to completely prevent a selection in a JTable
component is to prevent it from getting the focus using
setFocusable(false). However, if you still need keystrokes to
work in the component, this method is not an option.
The next closest way to disable selections is to call
setCellSelectionEnabled(false). After this call,
isCellSelected() correctly returns false for every cell.
However, getSelectedRows() and getSelectedColumns() do not
return empty arrays as expected. Instead, the anchor cell
(Getting the Anchor Cell in a JTable Component) will be considered selected.
Therefore, if you are using these methods, make sure you ignore the
results if getCellSelectionEnabled() returns false.
int rows = 10;
int cols = 5;
JTable table = new JTable(rows, cols);
// Do this only if there's no need for the component to have the focus
table.setFocusable(false);
// Partially disables selections (see description above)
table.setCellSelectionEnabled(false);
Post a comment