首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java Swing:向JPanels中添加选项卡

Java Swing:向JPanels中添加选项卡
EN

Stack Overflow用户
提问于 2013-02-23 04:50:50
回答 1查看 25.2K关注 0票数 1

我有一系列选项卡,但我想在它显示的面板中添加更多选项卡,就像复制功能区菜单一样。我大致知道需要做什么(更改makeTextPanel函数的返回类型),但不知道如何做,因此如果有任何帮助将不胜感激。

package components;

import javax.swing.JTabbedPane;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;

public class ribbonMenu extends JPanel {
        public ribbonMenu() {
                super(new GridLayout(1,1));

                JTabbedPane tabbedPane = new JTabbedPane();

                JTabbedPane tabbedPane2 = new JTabbedPane();

                JComponent panel1 = makeTextPanel("Panel #1");
                tabbedPane.addTab("Tab 1", panel1);
                panel1.setPreferredSize(new Dimension(600, 400));

                JComponent panel2 = makeTextPanel("Panel #2");
                tabbedPane.addTab("Tab 2", panel2);

                JComponent panel3 = makeTextPanel("Panel #3");
                tabbedPane.addTab("Tab 3", panel3);

                add(tabbedPane);

                tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);           
        }

        protected JComponent makeTextPanel (String text) {
                JPanel panel = new JPanel(false);
                JLabel filler = new JLabel(text);
                filler.setHorizontalAlignment(JLabel.CENTER);
                panel.setLayout (new GridLayout(1,1));
                panel.add(filler);
                return panel;
        }

        private static void createAndShowGUI() {
            JFrame frame = new JFrame ("ribbonMenu");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            frame.add(new ribbonMenu(), BorderLayout.CENTER);

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

        public static void main(String[] args) {
                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        UIManager.put("swing.boldmetal", Boolean.FALSE);
                        createAndShowGUI();
                    }

                });
        }
}

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-02-23 04:59:51

为什么需要更改返回类型?

而不是这个

JComponent panel1 = makeTextPanel("Panel #1");

使用

JPanel panel1 = (JPanel)makeTextPanel("Panel #1");

对于更多的选项卡,您可以在该面板中再次添加JTabbedPane

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15032959

复制
相关文章

相似问题

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