public LineCursorTextArea() { super(); caret = new DefaultCaret() { @Override protected synchronized void damage(Rectangle r) { if (r != null) { JTextComponent c = getComponent(); x = 0; y = r.y; width = c.getSize().width; height = r.height; c.repaint(); } } }; caret.setBlinkRate(getCaret().getBlinkRate()); setCaret(caret); }