为了选择一行,我使用以下代码:
table_2.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent event1) {
if (event1.getButton() == MouseEvent.BUTTON3) {
Point point = event1.getPoint();
int column = table_2.columnAtPoint(point);
int row = table_2.rowAtPoint(point);
table_2.setColumnSelectionInterval(column, column);
table_2.setRowSelectionInterval(row, row);
}
}
});
然后,要重置突出显示的行,我使用以下代码:
table_2.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent arg0) {
table_2.clearSelection();
}
});
但我想知道,是否有任何其他方式重置突出显示的行?
所以我得到了:
table_2.getSelectedRow()==-1
答案 0 :(得分:3)
为了选择一行,我使用以下代码:
更简单的方法是使用:
table.changeSelection(row, column, false, false);
然后,要重置突出显示的行,我使用以下代码:
当您单击表中的另一个单元格时,没有生成focusLost(..)事件,因为焦点仍在表上。无需清除选择,因为当您使用我建议的代码单击另一行时,将自动清除选择。
if (event1.getButton() == MouseEvent.BUTTON3) {
不要使用“MouseEvent.BUTTON3”,人们不知道这意味着什么。而是使用
//if (SwingUtilties.isRightMouseButton( event1 ))
if (SwingUtilities.isRightMouseButton( event1 ))
更容易阅读和理解。