我正在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' –