java - 使用 lineWrap 时调整 JTextArea 的大小

标签 java swing jtextarea word-wrap

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

每个 JTextArea 都有不同的大小。

  • 第一个 JTextArea 应有 8 列

  • 第二个应该只有 1 列

  • 最后一列应有 50 列。

    我最初的问题是:

    每当我输入内容时,JTextArea 都会不断调整其宽度。

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

    这就是我的问题。

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

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

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

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

    设置 JTextArea 的列自动换行的最简单方法是什么?

  • 最佳答案

    What's the easiest way to set the columns of JTextArea with word and line wrap?

    您可以使用如下代码创建 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 将尊重添加到其中的任何组件的高度。

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

    关于java - 使用 lineWrap 时调整 JTextArea 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33198303/

    相关文章:

    java - 读取来自 Weather Underground 的 JSON 回复

    java - System.out.println 是否有可能是导致 java 应用程序挂起的原因?

    java - GridBagLayout 组件显示不正确的宽度

    java - 为什么 java swing gui 绘制不好?

    java - Java 中的输出流

    java - 如何在jtextarea中选择一行

    java - JTextArea.setText(null);不释放内存

    java - 验证该行在 mySQL 表中是否不可用

    java - "Rotating"一个 ArrayList<Integer>

    javascript - 如何在 Titanium appcelerator 中将 textArea 的高度动态增加到 3 行高(就像 whatsApp 消息框一样)?