我正在编程IDE,并使用JTextPane作为“代码编辑器”。
现在,我正在尝试向JTextPane添加语法突出显示,但是遇到了一些麻烦......
我正在使用HTML将http://img21.imageshack.us/img21/6185/910b3b10cad4487f9c96d43.png替换为:
private void jTextPane1KeyTyped(java.awt.event.KeyEvent evt) {
String SyntaxedCode = jTextPane1.getText();
jTextPane1.setText(SyntaxedCode.replaceAll("//", "<span style='color: green'>//</span>"));
}
获得结果:
现在,我正在努力的部分是,JTextPane限制了我的间距...... 我只能连续添加一个或两个空格,然后JTextPane停止接受空格。 另外,我无法使用回车键转到新行。
为什么这样会限制我,我该如何避免呢?
提前致谢;
答案 0 :(得分:4)
1)从键盘到JTextComponents收听事件,然后你有实现DocumentListener
2)如果您想要从键盘过滤,阻止或修改输入,并且在此内容将显示在GUI中之前,那么您已查找DocumentFilter
3)我建议实现Highlighter,确保可以使用Html格式的文本,然后更好的是创建自己的HtlmEditorKit
4)使用Swing JComponents忘记了KeyListener中的收听,使用KeyBindings