JTabbedPane 内的 JPanel 内的 JPanel 不显示
JPanel inside a JPanel inside a JTabbedPane doesn't show up
我有一个嵌入到另一个 JPanel (secondPanel) 中的 JPanel (firstPanel)。我想创建一个带有两个选项卡的 JTabbedPane:一个用于第一个面板,一个用于第二个面板。
但是,当我切换到 secondPanel 时,嵌入的 firstPanel 不会显示。
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class Application extends JFrame
{
public Application()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
setMinimumSize(new Dimension(300, 300));
JPanel firstPanel = new JPanel();
firstPanel.add(new JLabel("first"));
JPanel secondPanel = new JPanel();
// JPanel thirdPanel = new JPanel();
// thirdPanel.add(new JLabel("third"));
//
// secondPanel.add(thirdPanel);
secondPanel.add(firstPanel);
secondPanel.add(new JLabel("second"));
JTabbedPane mainPanel = new JTabbedPane();
mainPanel.addTab("First", firstPanel);
mainPanel.addTab("Second", secondPanel);
this.add(mainPanel);
}
public static void main(String[] args)
{
Application app = new Application();
app.pack();
app.setVisible(true);
}
}
当我添加第三个面板而不是第一个面板时,它按预期工作。
我错过了一些明显的东西吗?
谢谢!
这是因为您正试图将一个面板添加到两个不同的父级,一个是您的 secondPanel
,另一个是您的选项卡。你不能那样做。
请问您为什么要这样做?可能有更好的解决方案。
我有一个嵌入到另一个 JPanel (secondPanel) 中的 JPanel (firstPanel)。我想创建一个带有两个选项卡的 JTabbedPane:一个用于第一个面板,一个用于第二个面板。 但是,当我切换到 secondPanel 时,嵌入的 firstPanel 不会显示。
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class Application extends JFrame
{
public Application()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
setMinimumSize(new Dimension(300, 300));
JPanel firstPanel = new JPanel();
firstPanel.add(new JLabel("first"));
JPanel secondPanel = new JPanel();
// JPanel thirdPanel = new JPanel();
// thirdPanel.add(new JLabel("third"));
//
// secondPanel.add(thirdPanel);
secondPanel.add(firstPanel);
secondPanel.add(new JLabel("second"));
JTabbedPane mainPanel = new JTabbedPane();
mainPanel.addTab("First", firstPanel);
mainPanel.addTab("Second", secondPanel);
this.add(mainPanel);
}
public static void main(String[] args)
{
Application app = new Application();
app.pack();
app.setVisible(true);
}
}
当我添加第三个面板而不是第一个面板时,它按预期工作。 我错过了一些明显的东西吗? 谢谢!
这是因为您正试图将一个面板添加到两个不同的父级,一个是您的 secondPanel
,另一个是您的选项卡。你不能那样做。
请问您为什么要这样做?可能有更好的解决方案。