本文主要记录怎么给代码编辑器实际语法高亮显示的功能,先来张效果图吧:
当JEditorPane被创建时,它会把createDefaultEditorKit()方法(javax.swing.text.EditorKit的子类对象)的返回值作为默认的编辑器工具包,然后将文本的编辑与显示工作交给这个工具包。其原型为:
Java代码
protectedEditorKit createDefaultEditorKit()
{
returnnewPlainEditorKit();
}
protected EditorKit createDefaultEditorKit()
{
return new PlainEditorKit();
}
这个方法默认是返回一个PlainEditorKit对象,也就是一个纯文本的编辑器工具包,所以JEditorPane默认并没有格式化与彩色显示等功
能,看来我们先要定制一个支持彩色显示的EditorKit,然后把它作为createDefaultEditorKit()的返回值。
EditorKit
基本上什么也没有做,只是提供了很多抽象方法给它的子类去实现,Swing默认已经给它添加了一个子类DefaultEditorKit(Swing常用
的一招,就是给抽象类前面加个Default进行最基本的实现),既然是Default,那它所提供的功能肯定和一个记事本没有多大区别,这要是继承下
来,有多少方法需要覆盖啊,别慌,查看一下Swing的源码,你会发现Swing还提供了一个继承自DefaultEditorKit的类
StyledEditorKit,顾名思义,这个类肯定为我们提供了很多支持格式化显示的方法,又是一个巨人,快,赶紧拉过来往肩上爬。
接下来就是覆盖Styl