【问题标题】:JTextArea auto height resizeJTextArea 自动调整高度
【发布时间】:2012-08-21 23:12:04
【问题描述】:

所有组件的宽度都相同。 我有一个 JPanel(框布局;PAGE_AXIS)。 我在上面添加了一个 Box.filler,它具有以下规格:

最小尺寸(高度)-1

首选尺寸(高度)JPanel 高度

最大尺寸(高度)JPanel 高度

我添加了边框厚度为 7 像素的 JTextArea(仅在下方)。

当我输入文本时,JTextArea 会扩大,但还不够,几行之后,文本就会越界(你再也看不到它了)。

我可以确定存在多少行文本(使用 FontMetrics),我可以相应地强制 setSize,但没有真正改变。打印出 JTextArea.getHeight() 确实表明尺寸已经改变,但在视觉上它保持不变。而且我还没有忘记验证和重绘。

如何强制 JTextArea 调整到特定大小?

【问题讨论】:

  • 1) 您的问题是什么? 2) 为了尽快获得更好的帮助,请发布SSCCE。 3) 您可能希望改用多行(HTML 格式)标签。

标签: java swing jtextarea layout-manager boxlayout


【解决方案1】:

你也可以让 JTextArea 换行?:

JTextArea.setWrapStyleWord(true);

您也可以尝试使用setRows(int rows) 然后revalidate()repaint() 设置行数

【讨论】:

  • Karlovsky 写的是越界的行,而不是列。
  • @StefanNeubert true 见编辑帖子
【解决方案2】:

您可以将 JTextArea 放入 JScrollPane 以保持附加行可见,而无需更改 JTextArea 在屏幕上所需的空间。

有关更多信息,请参阅how to use Scroll Panes 上的 Oracle 教程。

【讨论】:

    猜你喜欢
    • 2010-10-17
    • 2013-12-16
    • 2014-01-14
    • 2011-08-23
    • 2013-11-12
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2011-02-05
    相关资源
    最近更新 更多