Java Swing JTable; Меню правого клика (как заставить его «выбрать», иначе выделите строку)

Коротко: мне нужно "событие щелчка правой кнопкой мыши", чтобы выделить строку ячейки.

Я использую 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 (), но не смог найти подходящую. По умолчанию щелчок левой кнопкой мыши автоматически выделяет строку. Как настроить его для правых кликов?

29
задан Carlo del Mundo 24 August 2010 в 15:47
поделиться

1 ответ

вот так:

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());
        }
    }
});

......

83
ответ дан 28 November 2019 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: