java - 如何让JTextPane(或JEditorPane)在文本行达到Pane的大小后自动换行?

标签 java swing user-interface

我是Java GUI 编程的新手,目前正在制作一个简单的文本编辑器。

问题:

目前,当文本行的长度超过 TextPane 的宽度时,水平滚动条将打开并且继续键入,我想要的是,一旦该行变为 TextPane 的宽度长,就会自动从下一行继续键入。

例如就像在 MS-Word 或我在其中输入这个问题的编辑器框中一样。

最佳答案

文本换行是 JTextPane 的默认处理方式。尝试以下 SSCCE 中的代码,您将看到它有效:

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

public class Main
{
    public static void main(String[] args) throws Exception
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                JFrame frame = new JFrame("SSCCE");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add( new JScrollPane( new JTextPane() ) );
                frame.setLocationByPlatform( true );
                frame.setSize(100, 200);
                frame.setVisible( true );
            }
        });
    }
}

所以,如果你的代码不起作用,你就在做一些奇怪的事情。

查看No Wrap Text Pane有几种方法可以禁用换行并确保您的代码没有执行此操作。

如果您仍然无法解决问题,请发布SSCCE这说明了问题。

关于java - 如何让JTextPane(或JEditorPane)在文本行达到Pane的大小后自动换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449047/

相关文章:

将文本文件的内容放入数组然后显示和操作数组内容的 Java 问题

java - 阻止用户单击当前帧以外的其他位置的最佳方法?

java - JTree Nimbus Selectionbackground 不适用于 Java 1.8

java - 非常基本的 JFrame 未显示

java - JOptionPane 获取密码

java - 为什么 JTextArea 不能与 JPanel 一起使用?

Java 自定义 ArrayList 对象排序

java - 线性规划-如何将变量设置为0或1?

java - 为什么 Java 6 编译的类大小大于 Java 5?

python - 使用 tkinter 在 GUI 中创建一个 Box