Swing实现Java代码编辑器 - 语法高亮显示


本文主要记录怎么给代码编辑器实际语法高亮显示的功能,先来张效果图吧:
    


    

    当JEditorPane被创建时,它会把createDefaultEditorKit()方法(javax.swing.text.EditorKit的子类对象)的返回值作为默认的编辑器工具包,然后将文本的编辑与显示工作交给这个工具包。其原型为:
1protected EditorKit createDefaultEditorKit()
2{
3    return new PlainEditorKit();
4}
    这个方法默认是返回一个PlainEditorKit对象,也就是一个纯文本的编辑器工具包,所以JEditorPane默认并没有格式化与彩色显示等功能,看来我们先要定制一个支持彩色显示的EditorKit,然后把它作为createDefaultEditorKit()的返回值。

EditorKit基本上什么也没有做,只是提供了很多抽象方法给它的子类去实现,Swing默认已经给它添加了一个子类DefaultEditorKit(Swing常用的一招,就是给抽象类前面加个Default进行最基本的实现),既然是Default,那它所提供的功能肯定和一个记事本没有多大区别,这要是继承下来,有多少方法需要覆盖啊,别慌,查看一下Swing的源码,你会发现Swing还提供了一个继承自DefaultEditorKit的类StyledEditorKit,顾名思义,这个类肯定为我们提供了很多支持格式化显示的方法,又是一个巨人,快,赶紧拉过来往肩上爬。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一页

相关内容