我试图根据 JTextArea 中 getLineCount 函数的返回值在 ScrollPane 中设置高度。 当我在 ScrollPane 的 Dimension 中将值设置为高度时,它真的很小。我添加了 *20 以获得最接近我期望的结果。 然而,使用这个技巧,getLineCount 的数字越大,它的精确度就越低,这意味着 JScrollPane 的高度变得比我希望的要大。
我需要一个公式来在它们之间转换指标。但是,我不知道它们返回/使用的确切指标是什么,除非它们是 int 值。
如果有一个内置库可以转换这两者,它也可能很有用。 网上关于这个问题的帖子似乎不多。有人遇到过这个问题吗?
int height= textArea.getLineCount();
JScrollPane scrollPane = new JScrollPane(textArea);
scrollPane.setPreferredSize(new Dimension(1, height* 20));
最佳答案
这有什么意义呢?如果您尝试将滚动 Pane 的大小调整为文本区域的大小,则不需要滚动 Pane 。
不要尝试管理大小。不要尝试使用 setPreferredSize() 方法。
相反,您可以使用 JTextArea
的 setRows(...)
方法定义要在文本区域中显示的行数,而无需滚动。
这将允许文本区域根据文本区域的行和字体确定其首选大小。滚动 Pane 的大小将自动调整为文本区域的首选大小。
如果添加更多行数据,则会出现滚动条。
关于java - 如何将JTextArea行数的值转换为Dimension height_JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42818942/