在我能找到的所有使用 a 的示例中JTextArea
,高度和宽度在构造 a 之前是已知的JTextArea
,如果JTextArea
需要更多高度,则将其放在 a 内JScrollPane
。显然,高度JTextArea
取决于宽度和文本内容。
现在,我的情况要求我不要使用 a JScrollPane
,而是JTextArea
要足够高以显示所有文本。当我创建 时JTextArea
,我知道文本内容以及它必须使用的宽度;我不知道高度 - 我希望它尽可能小而不切断任何文本。这似乎很难实现。
作为旁注,JTextArea
将被添加到JPanel
没有布局管理器的组件中 - 它使用基于添加组件的首选大小的绝对定位。这要求 myJTextArea
将返回正确的尺寸getPreferredSize()
。正确的尺寸应该是我在构建它时提供的宽度,以及显示具有提供的宽度的所有文本所需的最小高度。
我发现了一些类似的线程,它们讨论了JTextArea
有时通过pack()
在父容器上调用两次来解决的奇怪/错误。这不是我的选择。我很想基本上创建我自己的JTextArea
,它需要一个宽度和字符串,并根据宽度和字体设置计算必要的最小高度,但我想在花时间去做之前我会先询问一下。
希望我的问题很清楚。感谢大家的帮助!