繁体   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