Коротко: мне нужно "событие щелчка правой кнопкой мыши", чтобы выделить строку ячейки.
Я использую JTable внутри ScrollPane в Java Swing (Netbeans Matisse). У меня есть прослушиватель событий MouseClicked на JTable, который выполняет следующие действия:
if (evt.getButton() == java.awt.event.MouseEvent.BUTTON3) {
System.out.println("Right Click");
JPopUpMenu.show(myJTable, evt.getX(), evt.getY())
}
Проблема в том, что ... всякий раз, когда я выполняю щелчок правой кнопкой мыши на JTable, строка не подсвечивается (я установил выбор только в строки между прочим). Я искал несколько функций setSelected (), но не смог найти подходящую. По умолчанию щелчок левой кнопкой мыши автоматически выделяет строку. Как настроить его для правых кликов?
вот так:
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
int r = table.rowAtPoint(e.getPoint());
if (r >= 0 && r < table.getRowCount()) {
table.setRowSelectionInterval(r, r);
} else {
table.clearSelection();
}
int rowindex = table.getSelectedRow();
if (rowindex < 0)
return;
if (e.isPopupTrigger() && e.getComponent() instanceof JTable ) {
JPopupMenu popup = createYourPopUp();
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
});
......