2012-11-03 38 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方法在我的情況下刪除所有其他的,無用的方法,所以它佔用更少的空間?添加一個新的WindowListener到JFrame

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

有一個叫WindowAdapterWindowListener一個默認的實現,它允許你重寫你真的想用

+0

感謝很多的方法!真的有幫助! –

+3

對於其他監聽器,例如'MouseListener' /'MouseAdapter','MouseMotionListener' /'MouseMotionAdapter','KeyListener' /'KeyAdapter'等,也是如此。 –