2014-03-26 33 views
1
JFrame frame1 = new JFrame("frame"); 
frame1.setVisible(true); 
frame1.setPreferredSize(new Dimension(800, 600)); 
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
JPanel Panel1 = new JPanel(); 
JPanel Panel2 = new JPanel(); 
frame1.add(Panel1,BorderLayout.SOUTH); 
frame1.add(Panel2,BorderLayout.North); 

我怎麼做這樣的事,如果有事的框架是空白刪除的JFrame面板

if(SOMETHINGHAPPENS) 
    { 
    //remove all panels from frame 1 so i have a blank frame 
    //now i want to add some new panels 
    } 
+0

http://stackoverflow.com/questions/2501861/之間切換如何從j-frame中移除jpanel可能會有所幫助。換句話說,使用'frame1.remove()'。 –

+0

@MadProgrammer謝謝。 Java 7,它確實:http://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html#remove(java.awt.Component)雖然我不確定以前的版本。 –

+0

@NicolásCarlo是的,它是'removeAll',做怪異的東西 – MadProgrammer

回答

4

簡單的答案,不要。

相反,使用上JFrame

一個CardLayout這將允許您設置一系列的「意見」,您可以根據需要

+0

嘗試看看cardlayouts將標記爲正確的答案,如果它的所有workout感謝您的建議 – theForgottenCoder

+0

@MadProgrammer可以請你協助我如何實施卡到這個我跟着一個在線教程似乎沒有功能壽 – theForgottenCoder

+0

@ lilz4life [示例] (http://stackoverflow.com/questions/17477891/how-do-i-use-cardlayout-for-my-java-program-for-login-and-menu-items/17479575#17479575) – MadProgrammer

0

嘗試thisJframe.remove(JPanel)。然後調用JFrame.pack() ,可能還有JFrame.repaint()以便在必要時刷新圖形。

JPanel擴展JComponent,所以它應該工作得很好。請記住用上面代碼中的JFrame和JPanel替換使用方法的框架/面板的名稱。

+0

以任何方式刪除所有面板而不是單獨執行它 – theForgottenCoder

+0

@ lilz4life嘗試http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html#removeAll() – Jazzepi