Tag: textarea

如何计算JTextArea中的行数,包括由包装引起的行数?

我有一个JTextArea,我已将word-wrap和wrap-style-word设置为true。 我希望将JTextArea“打包”到给定指定宽度的最小可能高度。 要做到这一点,我正在计划使用…计算字体的高度 Font font = jTextArea.getFont(); FontMetrics fontMetrics = jTextArea.getFontMetrics(font); int lineHeight = fontMetrics.getAscent() + fontMetrics.getDescent(); …然后将其乘以JTextArea中使用的行数。 问题是JTextArea.getLineCount()计算忽略换行的换行数。 如何计算JTextArea中使用的行数,包括由自动换行引起的行数? 这里有一些演示代码可以更轻松地解决这个问题。 我有一个监听器,每次调整窗口大小时都会打印出行数。 目前,它总是打印1,但我想补偿自动换行并打印出实际使用的行数。 编辑:我在下面的代码中包含了问题的解决方案。 静态countLines方法提供了解决方案。 package components; import java.awt.*; import java.awt.event.*; import java.awt.font.*; import java.text.*; import javax.swing.*; public class JTextAreaLineCountDemo extends JPanel { JTextArea textArea; public JTextAreaLineCountDemo() { super(new GridBagLayout()); String inputStr = “Lorem ipsum […]