在Java Swing中是否有一种方法可以找到显示一行文本所需的确切高度,而不管使用的字体/字体大小是什么?
我使用JEditorPane
,我希望高度与同一面板中的另一个编辑器窗格同步。基本上,整个想法是让两个编辑器窗格具有相同的高度,具体取决于它们中的文本。
注意:我有一个监听器,它根据文本中的文本不断更改这两个窗格的高度,这样如果我在其中一个窗格中编辑代码并且高度变得比另一个高,那么新的高度(两个窗格)应该是最高的高度。
请参阅以下代码,了解我遵循的方法..:
//find the height of the pane based on the contents that is to go into them. This will
//count the number of newlines in the both the strings and will return the maximum.
//For eg if string 1 contains 3 newline chars and string 2 contains 5 chars the
//function will return 5.
int height= findheight(String str1,String str2);
JEditorPane pane1= new JEditorPane();
JEditorPane pane2= new JEditorPane();
pane1.setText(str1);
pane2.setText(str2);
pane1.setSize(new Dimension((int) pane1.getPreferredSize().getWidth(),16*height));
pane2.setSize(new Dimension((int) pane2.getPreferredSize().getWidth(),16*height));
如果我们更改显示器不适合的字体或字体大小,上面代码中的值16用于表示字体大小为x
的{{1}}字体。是否有解决方法或是否有内置函数来确定所需的高度?