我有一个JRadioButton,并为它设置了一个ComponentPopupMenu。
JRadioButton rdbtnTest = new JRadioButton();
rdbtnTest.setComponentPopupMenu(popupMenu);popupMenu是具有一个JPopupMenuItem的JPopupMenu。JPopupMenuItem有一个MouseListener,所以只要点击一下鼠标,就会打开一个网页。
JPopupMenu popupMenu = new JPopupMenu("GO");
PopupMenuListener popupMenuListener = new MyPopupMenuListener();
popupMenu.addPopupMenuListener(popupMenuListener);
MenuItem openMenuItem = new JMenuItem("Open Webpage");
openMenuItem.addMouseListener(new MouseListener() {
@Override
public void mousePressed(MouseEvent arg0) {
Component comp = arg0.getComponent(); // will only return the JPopupMenuItem
// Determine the right-clicked radio button and open webpage
}
popupMenu.add(openMenuItem);我的问题是:如果我有另一个具有相同popupMenu的JRadioButton rdbtnTest2,我能否确定两个单选按钮中的哪一个触发了JPopupMenu?打开网页时,我需要根据右击的单选按钮传递一个特定的参数。
发布于 2012-04-30 17:12:28
当您在MouseListener中显示弹出菜单时,只需获取事件源并将其存储在某个位置(调用菜单的单选按钮)。在您的代码中,只需检查弹出调用器。
https://stackoverflow.com/questions/10381019
复制相似问题