2017-05-10 5 views
-2

사용자가 JMenuItem을 클릭하면 팝업 창이 표시됩니다. 나는 다음과 같은 코드 조각을 가지고 :JMenuItem을 클릭했을 때 나타나는 팝업 윈도우

menuAnular = new JMenuItem(w.translate("ETI_ANULAR"),imageAnular); 
menuAnular.addActionListener(new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent arg0) { 
     JDialog yesNo = new JDialog(); 
     yesNo.setVisible(true); 
    } 

}); 

슬프게도,이 선 아무것도 나타났다하지 않습니다와 함께. 나는 그것을하기 위해 몇 가지 방법을 시도했지만 아무 것도 볼 수 없다.

+0

사용자 정의 JDialog 클래스를 볼 수 있습니까? –

+0

JDialog는 javax에서 Swing 라이브러리에 포함 된 클래스입니다. 다음은 설명서입니다. https://docs.oracle.com/javase/7/docs/api/javax/swing/JDialog.html – gab

+1

죄송합니다. 공식 (doc) [https : // docs. oracle.com/javase/7/docs/api/javax/swing/JDialog.html#JDialog()]로 생성자를 게시했습니다. *** JDialog (String x) ***, 사용자 정의 JDialog 클래스를 볼 수 있습니까? –

답변

0
menuAnular.addMouseListener(new MouseAdapter() { 
      public void mousePressed(MouseEvent e) { 
       final JPopupMenu popup = new JPopupMenu(); 
       popup.add(new JMenuItem(new AbstractAction("TITLE OF THE NEW JMENUITEM OF THE POPUP") { 
        public void actionPerformed(ActionEvent e) { 
         if (JOptionPane.showConfirmDialog(contentPanel, 
           "Dialog", "Dialog title", 
           JOptionPane.YES_NO_OPTION, 
           JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) 
         { 
          //DO SOMETHING 
         } 
        } 
       })); 
popup.show(e.getComponent(), e.getX(), e.getY()); 
      }}); 

사용자가 클릭 한 위치에 새 POP-UP이 만들어집니다.

'contentPanel'개체는 응용 프로그램의 기본 JPanel입니다.

이 도움이 되었기를 바랍니다.

+2

그것을 받아들이는 모든 컴퍼넌트에 대해서'ActionListener'를 사용합니다. 마우스 클릭뿐만 아니라 키보드 입력에도 반응합니다. –

+0

네 말이 맞아, 나는 그가 애플 리케이션이 마우스 클릭에 반응하기를 원한다고 생각했다. – AngryCoder

+1

동의합니다. JMenu/JMenuItem에는 자체 Listener가 있지만 ActionListener가 가장 간단한 선택입니다. – mKorbel

관련 문제