2012-11-03 6 views
4
mainFrame.addWindowListener(new WindowListener() { 

     @Override 
     public void windowClosing(WindowEvent e) { 
      if (JOptionPane.showConfirmDialog(mainFrame, "Are you sure you want to quit?", "Confirm exit.", JOptionPane.OK_OPTION, 0, new ImageIcon("")) != 0) { 
       return; 
      } 
      System.exit(-1); 
     } 

     @Override 
     public void windowOpened(WindowEvent e) {} 

     @Override 
     public void windowClosed(WindowEvent e) {} 

     @Override 
     public void windowIconified(WindowEvent e) {} 

     @Override 
     public void windowDeiconified(WindowEvent e) {} 

     @Override 
     public void windowActivated(WindowEvent e) {} 

     @Override 
     public void windowDeactivated(WindowEvent e) {} 

    }); 

내 코드가 있습니다. 내 경우에는 쓸모없는 메서드를 모두 제거하기 위해 windowClosing 메서드 만 사용하므로 가능합니까? 적은 공간이 필요합니까?JFrame에 새 WindowListener 추가

mainFrame.addWindowListener(new WindowListener() { 

     @Override 
     public void windowClosing(WindowEvent e) { 
      if (JOptionPane.showConfirmDialog(mainFrame, "Are you sure you want to quit?", "Confirm exit.", JOptionPane.OK_OPTION, 0, new ImageIcon("")) != 0) { 
       return; 
      } 
      System.exit(-1); 
     } 

    }); 

은 가능합니까?

+0

당신의'showConfirmDialog' 방법은 너무 많은 인수를 –

답변

10

이 당신이 정말

+0

덕분에 많이 가지고 사용하고자하는 메소드를 오버라이드 (override) 할 수 있습니다 WindowAdapter라는 WindowListener의 기본 구현! 정말 도움이되었습니다! –

+3

이것은'MouseListener' /'MouseAdapter','MouseMotionListener' /'MouseMotionAdapter','KeyListener' /'KeyAdapter' 등과 같은 다른 리스너에도 적용됩니다. –

관련 문제