不可编辑时,将插入符号保留在TextArea中

时间:2011-12-19 12:37:48

标签: java swing jtextarea

我正在使用java,我正在尝试制作一个不可编辑的JTextArea,但仍然在该字段中有插入符号。换句话说,文本区域不显示用户键入的字符,但仍具有闪烁的插入符号(即焦点)。

我真的很难过这个问题。我试过用setEditable捣乱,但是没有办法保留插入符号。我也尝试删除用户输入的字符,但我无法阻止它在屏幕上闪烁。

2 个答案:

答案 0 :(得分:8)

我认为以下内容对您有所帮助:

textArea.getCaret().setVisible(true);

textArea.getCaret().setSelectionVisible(true);

答案 1 :(得分:2)

至于上面的答案

textArea.getCaret().setVisible(true);

并不总是完美无缺,如果TextArea或EditorPane失去焦点,比如你点击不同的框架什么东西,当你回来时光标将再次不可见。

我遇到了同样的问题,似乎解决方案是添加一个焦点监听器,并在每次编辑器获得焦点时将其设置为可见。

text.addFocusListener(new FocusListener() {
  public void focusLost(FocusEvent e) {
    return;
  }

  public void focusGained(FocusEvent e) {
    text.getCaret().setVisible(true); // show the caret anyway
  }
});