在JTextPane中更改插入符号高度

时间:2013-11-13 22:35:07

标签: java swing user-interface jtextpane caret

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

BTW:This不起作用。它使插入符号停止闪烁。

1 个答案:

答案 0 :(得分: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);

有一个闪烁率属性,您可能应该使用它来保持同步,但我会让你在需要的时候解决这个问题......