我的用户发现如果JTextPane
中的最后一个字符是换行符,则光标会变小。无论我在哪里点击,调试语句都显示相同的光标和相同的字体。我为Oracle
下载了JTextPane
演示,可以看到相同的行为,因此它似乎是开箱即用的行为。
有人知道解决这个问题吗?
答案 0 :(得分:2)
我的用户发现如果JTextPane中的最后一个字符是换行符,则光标较小
插入符表示该行上使用的最大字体的高度。由于没有文本,因此使用较小的插入符号。这真的是一个需要担心的问题吗?
我下载了JTextPane的Oracle演示,可以看到相同的行为
将以下代码行添加到TextComponentDemo:
Rectangle caretCoords = textPane.modelToView(dot);
System.out.println(caretCoords); // added
您将看到高度发生变化。 DefaultCaret
类使用Rectangle的高度来绘制插入符。
我猜您可以覆盖modelToView(...)
JTextPane
方法,根据文本窗格的Font的FontMetrics返回最小高度。不确定可能影响文本窗格的其他功能。
或者您可以覆盖paint()
的{{1}}方法,使用最小高度,再次基于FontMetrics。