使用lineWrap时调整JTextArea的大小

时间:2015-10-18 13:12:34

标签: java swing jtextarea linewrap

我想在我的swing应用程序中创建三个JTextArea

每个JTextArea都有不同的尺寸。

  • 第一个JTextArea应该有8列

  • 第二个应该只有1列

  • 最后一列应该有50列。

    我最初的问题是:

    每当我输入内容时,JTextArea将继续重新调整其宽度。

    此问题已由JScrollPanesetLineWrap(true)setWrapStyleWord(true)修复。

    所以这是我的问题。

    每当我将setLineWrap()添加到JTextArea时,JTextArea都会调整大小。

    我的第一个和第二个JTextArea已调整为12列。

    我搜索并找到了一些解决方案,但他们使用的是MigLayout。

    有没有办法在JTextArea中添加单词和换行符而不调整它(当然,不使用MigLayout)?

    使用单词和换行设置JTextArea列的最简单方法是什么?

  • 1 个答案:

    答案 0 :(得分:2)

      

    使用单词和换行设置JTextArea列的最简单方法是什么?

    使用以下代码创建JTextArea:

    JTextArea textArea = new JTextArea(5, 50); 
    textArea.setLineWrap(true);
    textArea.setWrapStyleWord(true);
    JScrollPane scrollPane = new JScrollPane( textArea );
    
    JPanel panel = new JPanel();
    panel.add(scrollPane);
    
    frame.add(panel, BorderLayout.PAGE_START);
    

    默认情况下,JPanel使用FlowLayout,它遵循添加到其中的任何组件的大小。 BorderLayout.PAGE_START将查看添加到其中的任何组件的高度。

    滚动条将根据需要显示添加到文本区域的文本。因此关键是使用符合您要求的布局管理器(或布局管理器的组合)。