JTextArea show Caret while setEditable is false

text.getCaret().setVisible(true) and/or text.getCaret().setSelectionVisible(true)


Well, I put here a code fragment which shows the caret but don't let edit the JTextArea. I hope it helps you. It's a little trick which plays with the focus of the text area, when focus is gained, the edition is disabled; but when it's losed, the edition it's possible. In this way, the user is unable to edit it but can see the caret.

public void run() {
    JFrame frame = new JFrame();
    final JTextArea text = new JTextArea();
    text.addFocusListener(new FocusListener() {

        public void focusLost(FocusEvent fe) {
            text.setEditable(true);     
        }

        public void focusGained(FocusEvent fe) {
            text.setEditable(false);
        }
    });
    text.setEditable(true);
    String line = "added line";
    text.append(line);
    text.setCaretPosition(text.getCaretPosition() + line.length());

    frame.getContentPane().add(text);
    frame.setSize(300,300);
    frame.setVisible(true);
}

Notice that the user can move the caret, but he/she can't edit the text