在Java swing中重用相同的JPanel

sut*_*toL 3 java swing jpanel

我有两个需要添加JPanel的JPanel,但是只有最后添加的JPanel才会显示JPanel.如下所示:

holderPanel1.add(dataPanel);
holderPanel2.add(dataPanel);
Run Code Online (Sandbox Code Playgroud)

只有holderPanel2显示dataPanel,但holderPanel1不显示.

MBy*_*ByD 6

UI组件(例如JPanel)是您在屏幕上看到的事物的下划线表示(位置,父组件,子组件等),因此您在屏幕上看到的每个面板都必须具有单独的下划线表示,因此您不能将面板添加到两个不同的面板,您需要创建两个单独的面板.

  • 如果这是两个单独的面板(因为它们位于两个单独的面板中),那就是你需要做的.考虑创建一个扩展JPanel的类,并包含所有这些内部组件并将其实例化两次. (3认同)
  • _extends JPanel,包括所有那些inner_ - 不是子类化的好理由,添加东西是容器的核心功能,没什么特别的.相反,实施一个工厂做面板建设并调用它两次:-) (3认同)