java - 如何在 Java 中为 ScrollPane 和 TextPane 提供 TabPane

标签 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();

            }

        });

    }

}

我做错了什么? :(

最佳答案

您正在向框架添加滚动 Pane 。

frame.add(scroll);

但是您应该将滚动 Pane 添加到 jpanel 并将 Pane 添加到滚动 Pane 。您已经完成了该部分。

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

frame.add(scroll);

this is complete code without using extends jframe .

this is complete code using extends jframe

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

enter image description here

关于java - 如何在 Java 中为 ScrollPane 和 TextPane 提供 TabPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31629712/

相关文章:

java.lang.OutOfMemoryError : PermGen space Exception 错误

javascript - jspContainer 内缺少 div jspVerticalBar

java - JTextPane.setText(JTextPane.getText()) 清除 HTML 模式下的空白

java - HyperLinkListener 取消并保存文件

java - 向特定接收者发送有序广播?

java - Android从url写入json文件

java - 获取 Jraw 的空访问 token

java - JScrollPane 沿底部和右边缘添加一个白色像素

Java Swing : Error when dynamically adding JScrollpane to JPanel

java - JTextPane 在上一行之后打印文本