1

如何更改 JTextPane 中的插入符号高度,以及如何垂直移动它(使插入符号看起来比正常值低 2 像素而不移动其他任何东西?

顺便说一句:行不通。它使插入符号停止闪烁。

4

1 回答 1

1

您之前示例的唯一问题是没有设置眨眼率......

JTextPane editor = new JTextPane();
DefaultCaret dc = new DefaultCaret() {
    @Override
    public void paint(Graphics g) {

        if (isVisible()) {

            JTextComponent comp = getComponent();
            if (comp == null) {
                return;
            }

            Rectangle r = null;
            try {
                r = comp.modelToView(getDot());
                if (r == null) {
                    return;
                }
            } catch (BadLocationException e) {
                return;
            }
            if (isVisible()) {
                g.fillRect(r.x, r.y + 2, 1, r.height - 2);
            }
        }
    }
};
dc.setBlinkRate(500);
editor.setCaret(dc);

有一个眨眼率属性,您可能应该使用它来保持同步,但我会让您根据需要弄清楚...

于 2013-11-13T23:49:37.637 回答