java - 为什么我的 JTextarea 无法正确换行?

标签 java swing jtextarea word-wrap

我对我的 JTextArea 感到非常惊讶。正在关注JTextArea JAVAdoc我尝试创建一个长字符串的 JTextArea,并希望自动换行。

JTextArea text = new JTextArea(myLongString,10,100);
text.setLineWrap(true);
text.setWrapStyleWord(true);
myContainer.add(text);

但事实上我的文本超出了我的框架,并且每行的字符数约为 180。 也许我不明白某些事情或者问题出在布局管理中。但为了避免布局复杂化,我将其简化为基本框架>面板>文本区域。

请注意,英语不是我的母语。

public class myTest extends JFrame
{

    public myTest()
    {
        JPanel simplePanel = new JPanel();
        String alongString = "Accusata consulatu vix ad, eruditi albucius liberavisse est no. Platonem reprehendunt qui ea. Dicta recteque referrentur an his, id facete maiorum vulputate vim. At suas oratio mnesarchum quo. Quidam omnium necessitatibus ex sea, vix soleat quaerendum conclusionemque ut, case malorum nam an.No quis suas discere nam, nam ex nostro fastidii vivendum. Sed cu nobis ullamcorper. Has at doctus ponderum honestatis. In facer dicam corpora vis.";
        JTextArea myText = new JTextArea(alongString,10,100 );

        this.setSize(800, 600);

        myText.setLineWrap(true);
        myText.setWrapStyleWord(true);

        simplePanel.add(myText);
        this.add(simplePanel);
        this.validate();
        this.setVisible(true);

    }

    public static void main(String[] args)
    {
        new myTest();
    }
}

最佳答案

问题是您的 jtext 区域位于具有默认布局管理器的面板中。你需要改变它别的东西。查看下面修改后的代码并告诉我它是否适合您。

public MyTest()
{


    String alongString = "Accusata consulatu vix ad, eruditi albucius liberavisse est no. Platonem reprehendunt qui ea. Dicta recteque referrentur an his, id facete maiorum vulputate vim. At suas oratio mnesarchum quo. Quidam omnium necessitatibus ex sea, vix soleat quaerendum conclusionemque ut, case malorum nam an.No quis suas discere nam, nam ex nostro fastidii vivendum. Sed cu nobis ullamcorper. Has at doctus ponderum honestatis. In facer dicam corpora vis.";
    JTextArea myText = new JTextArea(alongString,10,100 );

    myText.setLineWrap(true);
    myText.setWrapStyleWord(true);

    JPanel simplePanel = new JPanel(new BorderLayout(5, 5));
    simplePanel.add(myText, BorderLayout.CENTER);

    this.add(simplePanel);
    this.validate();
    this.setSize(800, 600);
    this.setVisible(true);

}

public static final void main(String ... args) {
    new MyTest();
}

关于java - 为什么我的 JTextarea 无法正确换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950631/

相关文章:

java - 如何让滚动条从底部开始?

java - 未检测到控制键

java - Spring Boot 与 Activiti 和 websockets

Java 简单弹跳球、单线程、鼠标监听器、JFrame

java - eclipse 3.4 (ganymede) 包与类型的冲突

java - Swing:从其他应用程序中窃取焦点(在 OS X 中的可用性)

Java 2D回合制游戏编程: handle 2 mouse clicks per player

java - 添加 ScrollPane 使我的 JTextArea 消失

java - 如何为多个 Spring Boot 类分配上下文路径前缀?

java - 私有(private)类单元测试