用swing写了一个GUI,在关闭窗口时,如何写windowclosing()
使得窗口在某一条件下,不关闭,即取消关闭窗口的动作
(我写的是编译器仍在运行,窗口却没了)
如何写才能随心所欲的使执行语句从windowclosing()中跳出

解决方案 »

  1.   

    /*
     * mFrame2.java
     *
     * Created on 2005年7月4日, 下午1:12
     */package DialogExample;/**
     *
     * @author  Administrator
     */
    public class mFrame2 extends javax.swing.JFrame {
        
        /** Creates new form mFrame2 */
        public mFrame2() {
            initComponents();
        }
        
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        private void initComponents() {
            buttonGroup1 = new javax.swing.ButtonGroup();
            buttonGroup2 = new javax.swing.ButtonGroup();
            buttonGroup3 = new javax.swing.ButtonGroup();
            jPanel1 = new javax.swing.JPanel();
            jTextField1 = new javax.swing.JTextField();
            jButton1 = new javax.swing.JButton();        setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
            addWindowListener(new java.awt.event.WindowAdapter() {
                public void windowClosing(java.awt.event.WindowEvent evt) {
                    exitForm(evt);
                }
            });        jPanel1.setBorder(new javax.swing.border.TitledBorder("Tilte Broder"));
            jTextField1.setText("jTextField1");
            jPanel1.add(jTextField1);        jButton1.setText("jButton1");
            jPanel1.add(jButton1);        getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);        pack();
        }
        
        /** Exit the Application */
        private void exitForm(java.awt.event.WindowEvent evt) {
            if(true) {
                System.out.println("hello exiting");
              //  return;
            }
            //System.exit(0);
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            new mFrame2().show();
        }
        
        
        // Variables declaration - do not modify
        private javax.swing.ButtonGroup buttonGroup1;
        private javax.swing.ButtonGroup buttonGroup2;
        private javax.swing.ButtonGroup buttonGroup3;
        private javax.swing.JButton jButton1;
        private javax.swing.JPanel jPanel1;
        private javax.swing.JTextField jTextField1;
        // End of variables declaration
        
    }
      

  2.   

    关键的代码是 setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); private void exitForm(java.awt.event.WindowEvent evt) {
            if(true) {
                System.out.println("hello exiting");
              //  return;
            }
            //System.exit(0);
        }
    此程序单击“×”之后什么也不做,只是在console中输出"hello exiting"