I have an problem with Caret, Caret didn\'t blink without focusGained(see code in Swing Action) to 2nd. JTextField and back to 1st. JTextField
how
But your previous code works OK if setBlinkRate(500);
is placed in HighlightCaret
class constructor:
class HighlightCaret extends DefaultCaret {
private static final Highlighter.HighlightPainter unfocusedPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.RED);
private static final Highlighter.HighlightPainter focusedPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW);
private static final long serialVersionUID = 1L;
private boolean isFocused;
HighlightCaret(){
setBlinkRate(500);//Placed here
}
@Override
protected Highlighter.HighlightPainter getSelectionPainter() {
// setBlinkRate(500); // otherwise is disabled, stopped
return isFocused ? focusedPainter/*super.getSelectionPainter()*/ : unfocusedPainter;
}
@Override
public void setSelectionVisible(boolean hasFocus) {
if (hasFocus != isFocused) {
isFocused = hasFocus;
super.setSelectionVisible(false);
super.setSelectionVisible(true);
}
}
}
Tested in Java7 WinXP. Have you tried it?