使用具有空布局的JPanel
问题内容:
所以我有一个叫做CalendarPanel
extends
的类JPanel
。它使用空布局。我如何将其CalendarPanel
用作常规组件?当我将它放在另一个JPanel
窗口中然后添加到窗口中时,它消失了。仅当我直接将其添加到窗口时,它才可见。
编辑:是的,我意识到使用JPanel
带有null布局的A是不好的做法。CalendarPanel
实际上是别人的代码,我正在尝试将其用于我的目的,而不必重构它。
问题答案:
仅当我直接将其添加到窗口时,它才可见。
这是因为默认情况下,窗口使用BorderLayout并将自动调整面板大小以适合窗口。
当我将其放入另一个JPanel中并将其添加到窗口中时,它消失了。
这是因为JPanel默认使用FlowLayout,并且流布局会考虑添加到其中的组件的首选大小。由于您使用的是空布局,因此您的面板没有首选的尺寸,因此不会绘制任何内容。
这就是为什么您不应该使用空布局的原因。而是使用布局管理器,因为他们会为您完成所有这些额外工作。