我正在Java Swing中创建学生数据库项目。现在我创建了许多JFrame。例如,如果我想添加一个新的学生将出现一个新的框架,其中将有一些文本字段和按钮,现在我想使最后的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();
}
//}
}
});
现在当我从第一帧到第二帧时,第一帧消失,当第二帧的工作结束并且第一帧到来时,第二帧不会消失。两个帧都在不同的类中。任何方案?抱歉我的英文不好
答案 0 :(得分:0)
我的个人经验告诉我,在同一级别拥有多个JFrame并不是一个好主意。
您应该创建一个JFrame作为“Main”,并在需要时创建其他JFrame而不释放“Main”JFrame。
我不确定我是否解释得很好,英语不是我的第一语言。
这个想法基本上不是在创建另一个JFrame时处理当前的JFrame。