2015-07-11 156 views
-1

我正在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結束了,我第一幀來了,第二幀不消失。兩個框架都在不同的類中。任何方案?對不起我的壞英文

+4

應用程序應該有一個總是可見的主JFrame。如果您需要一個子窗口,例如創建一個學生,那麼您應該創建一個「模態JDialog」來創建學生並輸入學生信息。當對話框關閉時,您的主框架已準備好進行進一步處理。請參閱:http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-bad-practice – camickr

+0

看看http://stackoverflow.com/questions/7256606/jdialog-setvisiblefalse- vs處置'處置'vs'setVisible' –

回答

0

我個人的經驗告訴我,多個JFrame「在同一級別」不是一個好主意。

您應該創建一個JFrame作爲「Main」,並在需要時創建其他JFrame而無需配置「Main」JFrame。

我不確定如果我解釋得很好,英語不是我的第一語言。

這個想法基本上不是在創建另一個JFrame時處理當前的JFrame。

+0

雖然延遲迴復,但是順便謝謝:) – CodeHead