【问题标题】:Java - Add two tabs into JPanelJava - 在 JPanel 中添加两个选项卡
【发布时间】:2013-12-06 17:19:09
【问题描述】:

我对 JPanel 中的选项卡有疑问。我知道如何在 Mainframe 中制作新标签,但我不知道如何在 Mainframe 中的 JPanel 中制作标签。

图片如下:

我的程序看起来像这样 - http://www.bildites.lv/viewer.php?file=vklfhvfdfpwpcxllfqv.png

但我想让它看起来像这样—— http://www.bildites.lv/viewer.php?file=bvbrp4qfx2krn9bkx30j.png

这是我的蓝色 JPanel 代码:

package gui;

import java.awt.Color;

import javax.swing.JPanel;

public class CallsPanel extends JPanel {
    private MainFrame frame;
    Color color = new Color(99, 184, 255); // steelblue

    public CallsPanel(MainFrame frame) {
        this.frame = frame;

        this.setLocation(0, 0);
        this.setSize(300, 380);
        this.setLayout(null);
        this.setBackground(color);

        this.initContent();
    }

    // -------------------------------------------------------------------------

    // Declare New Things

    private void initContent() {
        // Add New Things
    }

    // -------------------------------------------------------------------------

}

非常感谢愿意提供帮助的人!

【问题讨论】:

标签: java jpanel jtabbedpane


【解决方案1】:
JTabbedPane tabPane = new JTabbedPane();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JLabel label1 = new JLabel("Tab 1");
JLabel label2 = new JLabel("Tab 2");

panel1.add(label1);
panel2.add(label2);

tabPane.add("Tab 1", panel1);
tabPane.add("Tab 2", panel2);
this.add(tabPane);

尝试使用 tabPane 的大小/颜色/形状,看看哪些对您有用。但这是 tabPane 的基础。

【讨论】:

  • 现在我知道问题出在哪里了。我还必须设置 tabPane 的大小。我认为它会自动与它所在的面板一样大。非常感谢! ;)
【解决方案2】:

查看这个简单的可运行示例

import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder;

public class MyPanel extends JPanel {
    JButton button = new JButton("Button");
    JTabbedPane tabPane = new JTabbedPane();

    public MyPanel(){
        JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();

        tabPane.add("Panel 1", panel1);
        tabPane.add("Panel 2", panel2);
        tabPane.setBorder(new EmptyBorder(10, 10, 10, 10));

        setLayout(new BorderLayout());
        add(tabPane, BorderLayout.CENTER);
        add(button, BorderLayout.SOUTH);

    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                JFrame frame = new JFrame();
                frame.add(new MyPanel());
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLocationByPlatform(true);
                frame.setSize(300, 300);
                frame.setVisible(true);
            }
        });
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 2014-12-09
    • 2013-02-14
    相关资源
    最近更新 更多