我正在Java Swing中创建一个学生数据库项目。现在我创建了许多JFrame。例如,如果我想添加一个新学生,将出现一个新的框架,其中将有一些文本框和按钮,现在我想让最后一个JFrame消失。我使用dispose()方法关闭正在运行的JFrame,并在下一帧中使用.setVisible(true),并且我在下一帧中也做了同样的事情,当添加学生框架的工作结束时,它将返回旧JFrame的,我用同样的程序,但原来的框架犯规消失,只有运行我的程序正在消失后的第一帧,但其他人都没有, 这是第一守则在JFrames之间切换
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();
}
//}
}
});
现在,当我从第一帧走到第二帧时,第一帧消失,当第二帧的工作rame结束了,我第一帧来了,第二帧不消失。两个框架都在不同的类中。任何方案?对不起我的坏英文
应用程序应该有一个总是可见的主JFrame。如果您需要一个子窗口,例如创建一个学生,那么您应该创建一个“模态JDialog”来创建学生并输入学生信息。当对话框关闭时,您的主框架已准备好进行进一步处理。请参阅:http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-bad-practice – camickr
看看http://stackoverflow.com/questions/7256606/jdialog-setvisiblefalse- vs处置'处置'vs'setVisible' –