-2

我正在用 Java Swing 创建一个学生数据库项目。现在我创建了许多 JFrames 。例如,如果我想添加一个新学生,则会出现一个新框架,其中将包含一些文本字段和按钮,现在我想让最后一个 JFrame 消失。我使用 dispose() 方法关闭正在运行的 JFrame ,并为下一帧使用 .setVisible(true) ,我对下一帧也做了同样的事情,当添加学生帧的工作结束时,它将返回旧帧JFrame,我用同样的程序,结果Frame并没有消失,只有运行我的程序后的第一帧消失了,其他的都没有,这是第一个代码

    btnAdd = new JButton("Add");
    btnAdd.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {

            try{

                frame.dispose();
                frame.setVisible(false);
                AddStudent add=new AddStudent();
                add.setVisible(true);


            }catch(Exception e){
                e.printStackTrace();
            }
        }
    });

第二个代码是

    btnAddStudent = new JButton("Add Student");
    btnAddStudent.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            //int action=JOptionPane.showConfirmDialog(null, "Do You   Really Want To Add This Studen?","Delete",JOptionPane.YES_NO_OPTION);
            //if(action==0){
            try{

                frame.dispose();
                frame.setVisible(false);

                Admin admin=new Admin();
                admin.setVisible(true);
            }catch(Exception e){
                e.printStackTrace();
            } 
            //}

        }
    });

现在,当我从第一帧到第二帧时,第一帧消失了,当第二帧的工作结束并且我第一帧到来时,第二帧并没有消失。两个框架都在不同的类别中。任何解决方案?对不起,我的英语不好

4

1 回答 1

0

我的个人经验告诉我,“同一级别”拥有多个 JFrame 并不是一个好主意。

您应该创建一个 JFrame 作为您的“主”,并在需要时创建其他 JFrame,而无需处理“主”JFrame。

我不确定我是否解释得很好,英语不是我的第一语言。

这个想法基本上是在创建另一个 JFrame 时不处理当前的 JFrame。

于 2015-12-04T12:11:47.127 回答