我有一個JPanel坐在JFrame的BorderLayout的中心位置。我怎樣才能將當前的JPanel換成新的?在BorderLayout中交換中心JPanel
0
A
回答
1
只需將組件添加到中心和重新驗證(。
1
你嘗試上線的東西:)父容器
container.add(BorderLayout.CENTER, newPanel);
container.revalidate();
+1
您還需要在此建議中添加revalidate()或validate()。 – camickr 2010-04-26 16:05:53
0
使用管理這個對你Card Layout
void swapCenterPanel(JFrame frame, JPanel oldPanel, JPanel newPanel) {
frame.getContentPane().remove(oldPanel);
frame.getContentPane().add(newPanel, BorderLayout.CENTER);
}
0
我得到了這個工作,沒有z索引問題通過試錯。
讓呼叫X它具有的BorderLayout
讓我們稱之爲Y,它是目前佔用BorderLayout.Center
的Component
讓呼叫z中的JPanel
中的中心位置,以取代JPanel
。
我發現如果我試圖通過LayoutManager本身刪除現有的JPanel,它不起作用。相反,如果您使用JPanel的remove方法,那麼java文檔會說它會通知佈局removeLayoutComponent方法,並且似乎可以做到這一點。
相關問題
- 1. JPanel不顯示在BorderLayout中
- 2. 在一個BorderLayout中定位JPanel
- 3. 在JPanel上添加JLabel - BorderLayout
- 4. BorderLayout中心命令不會中心
- 5. 將JPanel添加到JApplet的BorderLayout中
- 6. 如何重新繪製BorderLayout中的JPanel
- 7. BorderLayout中心的網格
- 8. 中心的JPanel -java
- 9. 如何使用BorderLayout在JPanel中定位對象?
- 10. BorderLayout - 防止「中心」組件被「切斷」
- 11. 將圖像添加到borderlayout中心
- 12. 交換JPanel,第二JPanel不顯示
- 13. 如何使用BorderLayout/GroupLayout從JPanel中刪除特定元素?
- 14. 在jpanel中心寫一個字符串
- 15. 如何在另一個JPanel的中心添加一個JPanel?
- 16. 如何將一個BorderLayout的中心中使用JScrollPane的
- 17. 如何使網格適合ZK中的borderlayout的中心
- 18. Java對齊JPanel中心的JLabel
- 19. 的Java:交換打開JPanel並JFrame的
- 20. setAlignmentY未將JLabel居中放在BorderLayout中
- 21. 我可以在JPanel數組中切換JPanel的位置嗎?
- 22. jscrollpane在jpanel中
- 23. 我可以強制在BorderLayout中自動換行
- 24. 如何將兩個組件添加到帶有BorderLayout的JPanel?
- 25. BorderLayout中的scrollpane塊按鈕?
- 26. 在窗體之間交換VBA +以決鬥屏幕爲中心
- 27. JavaFX ImageView不在BorderLayout中顯示圖像
- 28. 如何在BorderLayout中實現JSplitPane?
- 29. 在BorderLayout中對齊JLabel和JTextField
- 30. 在arraylist中添加JPanel <JPanel>
完美地工作。謝謝! – derekerdmann 2010-04-26 12:47:53
順便說一下,container.revalidate()實際上應該是container.validate()。 – derekerdmann 2010-04-26 12:55:12
-1,此解決方案不起作用。它似乎可行,但嘗試調整框架的大小,現在將在新面板上繪製前一個面板。這是因爲「Z-Ordering」在Swing中的作用。根據您的確切要求,正確的解決方案是其他兩種建議之一。 – camickr 2010-04-26 16:04:21