JTabbedPane内部JPanel内的JPanel未显示

时间:2016-11-13 16:58:57

标签: java swing jpanel jtabbedpane

我有一个JPanel(firstPanel),它嵌入到另一个JPanel(secondPanel)中。我想创建一个带有两个选项卡的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);
    }

}

当我添加第三个面板而不是第一个面板时,它按预期工作。 我错过了一些明显的东西吗 谢谢你!

1 个答案:

答案 0 :(得分:4)

这是因为您尝试将单个面板添加到两个不同的父级,一个是您的secondPanel,另一个是您的标签。你不能这样做。

我可以问你为什么认为你想这样做?那里可能有更好的解决方案。