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