Как сделать так, чтобы JPopupMenu появлялся при щелчке JCheckBox? - PullRequest
0 голосов
/ 10 октября 2010

У меня есть JCheckBox в программе (с пометкой «Использовать MiniTimer»), которая при щелчке правой кнопкой мыши показывает JPopupMenu с параметрами «Показать при закрытии», «Показать при сворачивании», «Показать при закрытии илиСвернуть »и« Не использовать MiniTimer ».Как я могу сделать так, чтобы JPopupMnu отображалось под JCheckBox, если щелкнуть левой кнопкой мыши?

Обратите внимание, что я попытался установить для метода actionPerformed JCheckBox значение miniTimerPopupMenu.setVisible(true);, но из-за того, что merel заставляет JPopupMenu появляться в верхнем левом углу экрана, и даже тогда он не будетзарегистрировать любые взаимодействия с ним.У кого-нибудь есть опыт или предложения, которыми он хотел бы поделиться?

Ответы [ 2 ]

1 голос
/ 10 октября 2010

Прочитайте раздел из учебника по Swing на Вызов всплывающего меню для рабочего примера.В учебнике используется popup.show (...).Не знаю, в этом ли разница.

Если вам нужна дополнительная помощь, опубликуйте свой SSCCE (http://sscce.org), который демонстрирует проблему.

1 голос
/ 10 октября 2010

Я думаю, что вы должны установить местоположение miniTimerPopupMenu, используя метод setLocation (), я думаю, что следующий код делает трюк

    miniTimerPopupMenu.setLocation((int)jCheckBox.getLocation().getX(),(int)jCheckBox.getLocation().getY()-10);
    miniTimerPopupMenu.setVisible(true);

Тогда вы можете играть с y и x местоположением верхнего всплывающего меню.

Надеюсь, что это работает

...