Java 如何在调用命令按钮中的另一帧时销毁现有帧窗口的内存空间

Java 如何在调用命令按钮中的另一帧时销毁现有帧窗口的内存空间,java,swing,Java,Swing,我在其中创建了一个框架,其中有一个ok按钮。如果单击此按钮,框架窗口应关闭并销毁框架窗口的内存,然后在单击确定按钮时打开另一个框架 下面的代码正确吗 public class GlobalVariableClass1 extends javax.swing.JFrame { public static String GVar; public GlobalVariableClass1() { initComponents();

我在其中创建了一个框架,其中有一个ok按钮。如果单击此按钮,框架窗口应关闭并销毁框架窗口的内存,然后在单击确定按钮时打开另一个框架

下面的代码正确吗

public class GlobalVariableClass1 extends javax.swing.JFrame {
        public static String GVar;

        public GlobalVariableClass1() {
            initComponents();
         }

        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {

            jPanel2 = new javax.swing.JPanel();
            Cmd01 = new javax.swing.JButton();
            jPanel1 = new javax.swing.JPanel();
            Txt01 = new javax.swing.JTextField();
            Lbl02 = new javax.swing.JLabel();
            Lbl01 = new javax.swing.JLabel();
            Lbl03 = new javax.swing.JLabel();

            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            addWindowListener(new java.awt.event.WindowAdapter() {
                public void windowClosing(java.awt.event.WindowEvent evt) {
                    formWindowClosing(evt);
                }
            });
            getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

            jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createMatteBorder(1, 1, 1, 1, java.awt.Color.darkGray), "Commands", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 12))); // NOI18N
            jPanel2.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N

            Cmd01.setText("Class B");
            Cmd01.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    Cmd01ActionPerformed(evt);
                }
            });

            javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
            jPanel2.setLayout(jPanel2Layout);
            jPanel2Layout.setHorizontalGroup(
                jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createSequentialGroup()
                    .addGap(20, 20, 20)
                    .addComponent(Cmd01)
                    .addContainerGap(33, Short.MAX_VALUE))
            );
            jPanel2Layout.setVerticalGroup(
                jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel2Layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(Cmd01, javax.swing.GroupLayout.DEFAULT_SIZE, 33, Short.MAX_VALUE)
                    .addContainerGap())
            );

            getContentPane().add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 10, 130, 80));

            jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createMatteBorder(1, 1, 1, 1, java.awt.Color.darkGray), "GlobalValue", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 0, 12))); // NOI18N

            Txt01.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N

            Lbl01.setText("Value Entered in C");

            Lbl03.setText("Enter Value");

            javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
            jPanel1.setLayout(jPanel1Layout);
            jPanel1Layout.setHorizontalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                            .addComponent(Lbl03, javax.swing.GroupLayout.DEFAULT_SIZE, 74, Short.MAX_VALUE)
                            .addGap(43, 43, 43)
                            .addComponent(Txt01, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(29, 29, 29))
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                            .addComponent(Lbl01, javax.swing.GroupLayout.DEFAULT_SIZE, 121, Short.MAX_VALUE)
                            .addGap(18, 18, 18)
                            .addComponent(Lbl02, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addContainerGap())))
            );
            jPanel1Layout.setVerticalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addGroup(jPanel1Layout.createSequentialGroup()
                            .addContainerGap()
                            .addComponent(Lbl02, javax.swing.GroupLayout.DEFAULT_SIZE, 25, Short.MAX_VALUE))
                        .addComponent(Lbl01, javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE))
                    .addGap(34, 34, 34)
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(Lbl03, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(Txt01, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(36, 36, 36))
            );

            getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 120, 260, 160));

            pack();
        }// </editor-fold>                        
     // ** this is the way i used, is it correct:**
        private void Cmd01ActionPerformed(java.awt.event.ActionEvent evt) {                                      
                GVar=Txt01.getText();
                dispose();
                new GlobalVariableClass2().setVisible(true);
        }                                     

        private void formWindowClosing(java.awt.event.WindowEvent evt) {                                   


        }                                  
           public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new GlobalVariableClass1().setVisible(true);
                }
            });
        }
公共类GlobalVariableClass1扩展了javax.swing.JFrame{
公共静态字符串GVar;
公共全球变量类1(){
初始化组件();
}
@抑制警告(“未选中”)
//                           
私有组件(){
jPanel2=newjavax.swing.JPanel();
Cmd01=newjavax.swing.JButton();
jPanel1=newjavax.swing.JPanel();
Txt01=newjavax.swing.JTextField();
Lbl02=newjavax.swing.JLabel();
Lbl01=newjavax.swing.JLabel();
Lbl03=newjavax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addWindowListener(新java.awt.event.WindowAdapter(){
公共无效窗口关闭(java.awt.event.WindowEvent evt){
窗体窗口关闭(evt);
}
});
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel2.setBorder(javax.swing.BorderFactory.createTitleBorder(javax.swing.BorderFactory.createMatteBorder(1,1,1,1,java.awt.Color.darkGray),“Commands”,javax.swing.border.titleBorder.DEFAULT_对齐,javax.swing.border.titleBorder.DEFAULT_位置,新java.awt.Font(“Arial”,0,12));//
setFont(新的java.awt.Font(“Arial”,0,12));//NOI18N
Cmd01.setText(“B类”);
Cmd01.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
执行的CMD01操作(evt);
}
});
javax.swing.GroupLayout jPanel2Layout=新的javax.swing.GroupLayout(jPanel2);
设置布局(jPanel2布局);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(20,20,20)
.addComponent(Cmd01)
.addContainerGap(33,简称最大值))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(Cmd01,javax.swing.GroupLayout.DEFAULT\u SIZE,33,Short.MAX\u值)
.addContainerGap())
);
getContentPane().add(jPanel2,new org.netbeans.lib.awtextra.AbsoluteConstraints(250,10,130,80));
jPanel1.setBorder(javax.swing.BorderFactory.createTitleBorder(javax.swing.BorderFactory.createMatteBorder(1,1,1,1,java.awt.Color.darkGray),“GlobalValue”,javax.swing.border.titleBorder.DEFAULT_对齐,javax.swing.border.titleBorder.DEFAULT_位置,新的java.awt.Font(“Arial”,0,12));//
setFont(新的java.awt.Font(“Arial”,0,12));//NOI18N
Lbl01.setText(“在C中输入的值”);
Lbl03.setText(“输入值”);
javax.swing.GroupLayout jPanel1Layout=新的javax.swing.GroupLayout(jPanel1);
setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,jPanel1Layout.createSequentialGroup()
.addComponent(Lbl03,javax.swing.GroupLayout.DEFAULT\u SIZE,74,Short.MAX\u值)
.addGap(43,43,43)
.addComponent(Txt01,javax.swing.GroupLayout.PREFERRED\u SIZE,94,javax.swing.GroupLayout.PREFERRED\u SIZE)
.addGap(29,29,29))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,jPanel1Layout.createSequentialGroup()
.addComponent(Lbl01,javax.swing.GroupLayout.DEFAULT\u SIZE,121,Short.MAX\u值)
.addGap(18,18,18)
.addComponent(Lbl02,javax.swing.GroupLayout.PREFERRED\u SIZE,91,javax.swing.GroupLayout.PREFERRED\u SIZE)
.addContainerGap()))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jpanellayout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.Training)
.addGroup(jpanellayout.createSequentialGroup()
.addContainerGap()
.addComponent(Lbl02,javax.swing.GroupLayout.DEFAULT_SIZE,25,Short.MAX_VALUE))
.addComponent(Lbl01,javax.swing.GroupLayout.DEFAULT_SIZE,36,Short.MAX_VALUE))
.addGap(34,34,34)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Lbl03,javax.swing.GroupLayout.PREFERRED\u SIZE,25,javax.swing.GroupLayout.PREFERRED\u SIZE)
.addComponent(Txt01,javax.swing.GroupLayout.PREFERRED_
new GlobalVariableClass1().setVisible(true);