簡體   English   中英

在JFrame上的JPanel中顯示JComponent

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM