2012-04-30 7 views
2

JRadioButton을 가지고 있으며 ComponentPopupMenu를 설정했습니다.JPopupMenuItem JPopupMenu를 트리거 한 구성 요소를 가져옵니다.

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

는 PopupMenu로 한 JPopupMenuItemJPopupMenu입니다. JPopupMenuItemMouseListener이므로 마우스를 클릭하면 웹 페이지가 열립니다.

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의 트리거 두 개의 라디오 버튼을 결정 할 수 있습니까? 웹 페이지를 열 때 어떤 라디오 버튼이 오른쪽 클릭되었는지에 따라 특정 매개 변수를 전달해야합니다.

+0

+1은'setComponentPopupMenu()'를 사용합니다. – trashgod

답변

3

MouseListener에 팝업 메뉴를 표시하면 이벤트 소스를 받고 어딘가에 저장 (메뉴를 호출하는 라디오 버튼). 귀하의 코드에서 팝업 호출자를 확인하십시오.