怎么能做到点击GUI右上角的关闭按钮和点击自己定义的结束按钮一样效果,比如弹出一个对话框?

解决方案 »

  1.   

    总共需要来那个个步骤:
    首先:
    setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
    接着,
    addWindowListener(new ExitAction());private final class ExitAction extends MouseAdapter implements WindowListener
    {
    private void close()
    {
    setVisible(false);
    dispose();
    } public void mouseReleased(MouseEvent e)
    {
    close();
    } /*
     * (non-Javadoc)
     * 
     * @see java.awt.event.WindowListener#windowActivated(java.awt.event.WindowEvent)
     */
    public void windowActivated(WindowEvent e)
    {
    } /*
     * (non-Javadoc)
     * 
     * @see java.awt.event.WindowListener#windowClosed(java.awt.event.WindowEvent)
     */
    public void windowClosed(WindowEvent e)
    {
    } public void windowClosing(WindowEvent e)
    {
    close();
    } /*
     * (non-Javadoc)
     * 
     * @see java.awt.event.WindowListener#windowDeactivated(java.awt.event.WindowEvent)
     */
    public void windowDeactivated(WindowEvent e)
    {
    } /*
     * (non-Javadoc)
     * 
     * @see java.awt.event.WindowListener#windowDeiconified(java.awt.event.WindowEvent)
     */
    public void windowDeiconified(WindowEvent e)
    {
    } /*
     * (non-Javadoc)
     * 
     * @see java.awt.event.WindowListener#windowIconified(java.awt.event.WindowEvent)
     */
    public void windowIconified(WindowEvent e)
    {
    } /*
     * (non-Javadoc)
     * 
     * @see java.awt.event.WindowListener#windowOpened(java.awt.event.WindowEvent)
     */
    public void windowOpened(WindowEvent e)
    {
    }
    }
      

  2.   

    frame f = new frame();
    f.addWindowListener(new WindowAdapter()
    {
       public void windowClosing(WindowEvent e)
       {
    }
    });
      

  3.   

    frame f = new frame();
    f.addWindowListener(new WindowAdapter()
    {
       public void windowClosing(WindowEvent e)
       {
           System.exit(0);
       }
    });
      

  4.   

    bovy(蓝狐狸) 写得太麻烦了,为什么要全部都写出来呢?