我有一个JTextPane
它是通过从文件中读取来填充的,然后对数据进行解析和格式化。该用户无权编辑JTextPane
,但我希望他们能够使用可见的光标在其中导航。
如果我使用setEditable(false)
,光标是不可见的,尽管可以通过按住来间接观察不可见光标的位置Shift并使用箭头键选择文本块。
要在禁止编辑时启用可见光标,而不是setEditable(false)
我创建了一个假人DocumentFilter
这对其毫无作用insertString()
, remove()
, and replace()
方法。但随后我必须换入常规过滤器才能以编程方式填充JTextPane
从文件中提取,然后在将控制权返回给用户之前放回虚拟过滤器。
到目前为止,这似乎可行,但是有更简单的解决方案吗?如果我保持原样,是否有任何击键或鼠标活动序列可以以某种方式允许用户编辑文本窗格,因为它在技术上是可编辑的setEditable
?
textPane.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
textPane.setEditable(true);
}
@Override
public void focusGained(FocusEvent e) {
textPane.setEditable(false);
}
});
又一个肮脏的黑客行为!似乎可以提供您所需要的!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)