【问题标题】:Resizing JTextArea while using lineWrap使用 lineWrap 时调整 JTextArea 的大小
【发布时间】:2015-10-18 13:12:34
【问题描述】:

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

每个JTextArea 都有不同的大小。

  • 第一个 JTextArea 应该有 8 列

  • 第二个应该只有 1 列

  • 最后一个应该有 50 列。

    我最初的问题是:

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

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

    这是我的问题。

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

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

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

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

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

  • 【问题讨论】:

    • “有没有什么方法可以用 word 和 line wrap 来调整 JTextArea 的大小而不用调整它的大小..” 你能吃蛋糕吗?

    标签: java swing jtextarea word-wrap


    【解决方案1】:

    用文字和换行设置 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 将反映添加到其中的任何组件的高度。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-14
      • 2013-08-25
      • 2013-12-16
      • 2011-02-05
      • 1970-01-01
      • 2015-07-01
      • 2012-08-14
      • 2014-07-20
      相关资源
      最近更新 更多