如何在Java中使用TextPane为ScrollPane设置TabPane

时间:2015-07-25 18:21:52

标签: java jscrollpane jtextpane jtabbedpane

我正在用Java创建一个记事本程序,并希望为每个打开的文档设置不同的选项卡。我无法显示标签。到目前为止,这是我的测试文档,我首先查看了这里,并为文本文档修改了它。 How to add a JScrollPane onto a JTabbedPane using a null layout?

这就是我目前所拥有的:

import java.awt.*;
import javax.swing.*;

public class Test extends JFrame {

    private static void CreateAndShowGui() {

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

        JTextPane txt = new JTextPane();
        JPanel noWrapPanel = new JPanel(new BorderLayout());
        noWrapPanel.add(txt);

        JScrollPane scroll = new JScrollPane(noWrapPanel);

        JPanel topPanel = new JPanel();
        topPanel.setLayout(new BorderLayout());

        frame.add(topPanel);

        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        panel.add(scroll, BorderLayout.CENTER);

        JTabbedPane tabbedPane = new JTabbedPane();
        tabbedPane.addTab("Welcome", panel);
        topPanel.add(tabbedPane);

        frame.add(scroll);

        frame.setSize(400, 200);
        frame.setVisible(true);

    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            public void run() {

                UIManager.put("swing.boldmetal", Boolean.FALSE);
                CreateAndShowGui();

            }

        });

    }

}

我做错了什么? :(

1 个答案:

答案 0 :(得分:2)

您要将滚动窗格添加到框架。

frame.add(scroll);

但您应该将滚动窗格添加到jpanel并添加窗格以滚动窗格。您已完成该部分。

所以删除这条不正确的行。

frame.add(scroll);

this is complete code without using extends jframe

this is complete code using extends jframe

注意:您已经通过jframe类扩展了类,但是您正在创建一个新框架。您不需要创建框架变量。您可以删除扩展部分或直接将您的类用作jframe而无需创建新的帧。

enter image description here