仅当我直接将其添加到窗口时,它才可见。
这是因为默认情况下,窗口使用BorderLayout并将自动调整面板大小以适合窗口。
当我将其放入另一个JPanel中并将其添加到窗口中时,它消失了。
这是因为JPanel默认使用FlowLayout,并且流布局会考虑添加到其中的组件的首选大小。由于您使用的是空布局,因此您的面板没有首选的尺寸,因此不会绘制任何内容。
这就是为什么您不应该使用空布局的原因。而是使用布局管理器,因为他们会为您完成所有这些额外工作。

仅当我直接将其添加到窗口时,它才可见。
这是因为默认情况下,窗口使用BorderLayout并将自动调整面板大小以适合窗口。
当我将其放入另一个JPanel中并将其添加到窗口中时,它消失了。
这是因为JPanel默认使用FlowLayout,并且流布局会考虑添加到其中的组件的首选大小。由于您使用的是空布局,因此您的面板没有首选的尺寸,因此不会绘制任何内容。
这就是为什么您不应该使用空布局的原因。而是使用布局管理器,因为他们会为您完成所有这些额外工作。