2012-04-30 7 views
2

JRadioButtonを取得し、ComponentPopupMenuを設定しました。JPopupMenuItem JPopupMenuをトリガーするコンポーネントを取得する

JRadioButton rdbtnTest = new JRadioButton(); 
rdbtnTest.setComponentPopupMenu(popupMenu); 

ポップアップメニューは、1 JPopupMenuItemJPopupMenuです。 JPopupMenuItemにはMouseListenerがあるため、マウスをクリックするとWebページが開きます。

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

私の質問は:私は同じポップアップメニューで別のJRadioButton rdbtnTest2を持っている場合、私はJPopupMenuをを引き起こした2つのラジオボタンのどれかを決定することができますか?ウェブページを開くときに、ラジオボタンを右クリックした特定のパラメータを渡す必要があります。

+0

+1は 'setComponentPopupMenu()'を使っています。 – trashgod

答えて

3

MouseListenerにポップアップメニューを表示すると、イベントソースが取得され、どこかに格納されます(メニューを呼び出すラジオボタン)。あなたのコードでは、ポップアップ呼び出しを確認してください。

関連する問題