首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JTabbedPane不使用JPanels

JTabbedPane不使用JPanels
EN

Stack Overflow用户
提问于 2013-09-29 22:16:56
回答 1查看 2.2K关注 0票数 0

对于Java家庭作业额外的学分,我试图在一个JTabbedPane中添加几个面板。实际上,它们是JFrames,但我只是更改为扩展JPanel而不是JFrame,并删除了main()。无论如何,当我运行main()时,JTabbedPane和两个面板都会出现,但是是分开的。我遗漏了什么?

代码语言:javascript
复制
   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();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-29 22:32:32

您正在创建两对变量,用于引用要添加到JFrame中的组件,但添加指向空白JPanels的变量。研究基于官方教程的代码

代码语言:javascript
复制
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();
            }
        });
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19083958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档