Java JTabbedPane不使用JPanels

Java JTabbedPane不使用JPanels,java,swing,jpanel,jtabbedpane,Java,Swing,Jpanel,Jtabbedpane,为了获得额外的Java GUI作业学分,我尝试向JTabbedPane添加几个面板。实际上,它们是JFrame,但我只是改为扩展JPanel而不是JFrame,并删除了main()。无论如何,当我运行main()时,JTabbedPane和这两个面板都会显示,但它们是分开的。我错过了什么? 您正在为引用组件创建两对变量,以添加到JFrame中,但添加指向空白JPanels的变量。基于 谢谢你的回复。我以为我听了你的话,但我没有。我将TabbedPane类中的JPanel更改为jpanelday

为了获得额外的Java GUI作业学分,我尝试向JTabbedPane添加几个面板。实际上,它们是JFrame,但我只是改为扩展JPanel而不是JFrame,并删除了main()。无论如何,当我运行main()时,JTabbedPane和这两个面板都会显示,但它们是分开的。我错过了什么?


您正在为引用组件创建两对变量,以添加到
JFrame
中,但添加指向空白
JPanels
的变量。基于


谢谢你的回复。我以为我听了你的话,但我没有。我将TabbedPane类中的JPanel更改为
jpaneldaygui=newjpanel()
JPanel OfficeAreaCalculator=newjpanel()我还更改了TabbedPane()构造函数中的引用,并将主方法项设置为:`JTabbedPane DayGui=new JTabbedPane();`
JTabbedPane OfficeAreaCalculator=new
JTabbedPane()
DayGui dg=new DayGui()
OfficeAreaCalculator oac=新的OfficeAreaCalculator()我仍然得到相同的结果,3个窗口:一个JTabbedPane窗口有2个选项卡,两个面板您的代码有很多问题。学习上面的示例并遵循Java命名约定:)
   import javax.swing.*;

public class TabbedPane extends JFrame
{

    JPanel DayGui = new JPanel();
    JPanel OfficeAreaCalculator = new JPanel();
    JLabel firstLabel = new JLabel("First tabbed pane");
    JLabel secondLabel = new JLabel("Second tabbed pane");
    JTabbedPane tabbedPane = new JTabbedPane();

    // constructor
    public TabbedPane()
    {
        DayGui.add(firstLabel);
        OfficeAreaCalculator.add(secondLabel);

        tabbedPane.add("First Panel", DayGui);
        tabbedPane.add("Second Panel", OfficeAreaCalculator);
        add(tabbedPane);

    }

    public static void main(String[] args)
    {
        TabbedPane tab = new TabbedPane();
        tab.pack();
        tab.setVisible(true);
        JTabbedPane DayGui = new JTabbedPane();
        JTabbedPane OfficeAreaCalculator = new JTabbedPane();
        DayGui dg = new DayGui();
        OfficeAreaCalculator oac = new OfficeAreaCalculator();
    }
}
public class TabbedPaneApp {

    private static void createAndShowGUI() {

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JTabbedPane firstPanel = new JTabbedPane();
        JTabbedPane secondPanel = new JTabbedPane();

        JLabel firstLabel = new JLabel("First tabbed pane");
        JLabel secondLabel = new JLabel("Second tabbed pane");

        JTabbedPane tabbedPane = new JTabbedPane() {
            public Dimension getPreferredSize() {
                return new Dimension(500, 400);
            };
        };

        firstPanel.add(firstLabel);
        secondPanel.add(secondLabel);

        tabbedPane.add("First Panel", firstPanel);
        tabbedPane.add("Second Panel", secondPanel);
        frame.add(tabbedPane);

        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}