[英]Displaying a JComponent inside a JPanel on a JFrame
我無法在JFrame上的JPanel中顯示JComponent。
以下不起作用。
JComponent component = ...
panel.add(component, BorderLayout.CENTER);
frame.add(panel, BorderLayout.CENTER);
但是如果我將JComponent添加到JFrame [如frame.add(component, BorderLayout.CENTER);
],它顯示內容。
有任何想法嗎
JPanel
的默認布局是FlowLayout
因此您不必指定面板的中心。
簡單地說:
panel.add(component);
或者,做:
panel.setLayout(new BorderLayout());
panel.add(component, BorderLayout.CENTER);
默認情況下,JComponent沒有首選大小。
默認情況下,JPanel使用FlowLayout。 向面板添加組件時,它將遵循組件的首選大小,即0,因此您看不到它。
默認情況下,用作JFrame內容窗格的面板使用BorderLayout。 因此,當您將組件添加到框架的內容窗格時,組件會自動調整大小以填充框架可用的空間,
解決方案是為您的組件提供首選大小,然后它可以在任何面板上使用任何布局管理器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.