我正在使用java,我正在尝试制作一个不可编辑的JTextArea
,但仍然在该字段中有插入符号。换句话说,文本区域不显示用户键入的字符,但仍具有闪烁的插入符号(即焦点)。
setEditable
捣乱,但是没有办法保留插入符号。我也尝试删除用户输入的字符,但我无法阻止它在屏幕上闪烁。
答案 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
}
});