Как я создаю контекстное меню щелчка правой кнопкой в Java Swing?

Вы также можете использовать join, например:

select t1.column2
from mytable t1 left join 
(select distinct t2.column2 from mytable t2 where t2.column1='A') t3 on t1.column2=t3.column2
where t3.column2 is null
108
задан JavaA 25 July 2018 в 12:49
поделиться

2 ответа

Вы, вероятно, вручную вызываете setVisible (true) в меню. Это может вызвать неприятные ошибки в меню.

Метод show (Component, int x, int x) обрабатывает все, что вам нужно, (выделение элементов при наведении курсора и закрытие всплывающего окна при необходимости) при использовании setVisible ( true) просто показывает меню без добавления какого-либо дополнительного поведения.

Чтобы создать всплывающее меню правой кнопкой мыши, просто создайте JPopupMenu .

class PopUpDemo extends JPopupMenu {
    JMenuItem anItem;
    public PopUpDemo() {
        anItem = new JMenuItem("Click Me!");
        add(anItem);
    }
}

Затем все, что вам нужно сделать, это добавить пользовательский MouseListener для компонентов, для которых вы бы хотели, чтобы всплыло меню.

class PopClickListener extends MouseAdapter {
    public void mousePressed(MouseEvent e) {
        if (e.isPopupTrigger())
            doPop(e);
    }

    public void mouseReleased(MouseEvent e) {
        if (e.isPopupTrigger())
            doPop(e);
    }

    private void doPop(MouseEvent e) {
        PopUpDemo menu = new PopUpDemo();
        menu.show(e.getComponent(), e.getX(), e.getY());
    }
}

// Then on your component(s)
component.addMouseListener(new PopClickListener());

Конечно,

138
ответ дан 24 November 2019 в 03:28
поделиться

В есть раздел «Вывод всплывающего меню » в Как использовать меню статья Учебники по Java , в которой объясняется, как использовать класс JPopupMenu .

Пример кода в руководстве показывает, как добавить MouseListener к компонентам, которые должны отображать всплывающее меню и отображать меню соответствующим образом.

(Метод, который вы описываете, довольно похож к тому, как учебник представляет способ показать всплывающее меню на компоненте.)

18
ответ дан 24 November 2019 в 03:28
поделиться
Другие вопросы по тегам:

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