sclass HighlightCaret extends DefaultCaret { Highlighter.HighlightPainter unfocusedPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.LIGHT_GRAY); Highlighter.HighlightPainter focusedPainter = null; //new DefaultHighlighter.DefaultHighlightPainter(Color.LIGHT_GRAY); bool isFocused; @Override protected Highlighter.HighlightPainter getSelectionPainter() { setBlinkRate(500); // otherwise is disabled, stopped return isFocused ? (focusedPainter != null ? focusedPainter : super.getSelectionPainter()) : unfocusedPainter; } @Override public void setSelectionVisible(boolean hasFocus) { if (hasFocus != isFocused) { isFocused = hasFocus; super.setSelectionVisible(false); super.setSelectionVisible(true); } } }