2010-10-10 1 views
0

У меня есть JCheckBox в программе (с надписью «Use MiniTimer»), которая при нажатии правой кнопкой мыши показывает JPopupMenu с опциями «Показать по закрытию», «Показать по минимуму», «Показать по закрытию или свернуть» и «Показать по закрытию», Не используйте MiniTimer ". Как я могу сделать это JPopupMnu ниже JCheckBox, когда он тоже нажал левой кнопкой мыши?Как создать JPopupMenu при нажатии на JCheckBox?

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

ответ

1

Прочитайте раздел из свинга учебника по Bringing Up a Popup Menu для рабочего примера. В учебнике используется popup.show (...). Не знаю, в чем разница.

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

1

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

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

Тогда вы можете играть с у и х расположения верхней PopupMenu.

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

+0

Я, собственно, сделал именно это. Он появляется в правильном месте, но все же, как я сказал в вопросе, он отказывается принимать взаимодействия. – Supuhstar

+0

, если вы имеете в виду добавление слушателя действий к popupMenu, попробуйте эту ссылку http://www.java2s.com/Tutorial/Java/0240__Swing/Addingactionlistenertopopupmenuitem.htm –

+0

нет, все действующие лица есть. Он просто не будет регистрировать, что мышь входила, выходила, нажимала, зависала или перетаскивалась в нее. Он также не будет регистрировать нажатия клавиш. – Supuhstar