我创建了一个扩展JComponent
的类。该类的一个对象被添加到JPanel
。 A JPanel
有一个默认的流程布局管理器。当我将JPanel
添加到JFrame
时,除空JFrame
之外什么也看不到。是的,框架可以看到并且尺寸达到最大屏幕尺寸。为什么组件不出现在我的JComponent中?
我尝试了几种变型来改变这个问题,并推导出:
- 元件尺寸 - 它设置无济于事,仍然空
JFrame
- 中间体面板 - 加入组分至中间面板和仍然空
JFrame
最后,我决定更改面板的布局管理器,我正在添加我的组件并将面板布局管理器更改为边框布局。然后我将该组件添加到中心,现在看起来如此。
后续的问题,我有是:
- 当进行定制
JComponent
,我有什么考虑? - 为什么我必须更改自定义
JComponent
面板的布局管理器?
我的天真问:“如果我能在JButton
添加到面板,并使用它显示了默认的流布局管理器,为什么不能自定义JComponent
我定制JComponent
是一个内部类:
public class OuterClass
{
private class Panel extends JPanel
{
public Panel()
{
add(new Custom());
}
}
private class Custom extends JComponent
{
public Custom()
{
// Initialization of members but not size of component
}
}
}
您可以发布的[SSCCE(http://sscce.org)。如果没有任何组件,这可以说并不多。 –
您可能想看看[在容器中放置组件](http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html) –