Are you looking for something like this perhaps?
To show popup over selected row(s) only
private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
// get row that pointer is over
int row = table.rowAtPoint(e.getPoint());
// if pointer is over a selected row, show popup
if (table.isRowSelected(row)) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
}
Or the converse, to prevent popup from showing over selected rows only:
private void maybeShowPopup(MouseEvent e) {
if (e.isPopupTrigger()) {
int row = table.rowAtPoint(e.getPoint());
int[] selectedRows = table.getSelectedRows();
if (!table.isRowSelected(row)) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
}