用RTF实现文本编辑器中对关键字的高亮显示(2)

来源:互联网 发布:股票java接口 编辑:程序博客网 时间:2024/05/04 18:33
今天头疼了,脾气很不好,但是还好,昨天在编辑器上出现的问题得到了解决。
如(1)中所说的,对关键字的高亮显示已经完成(虽然我想效率很低吧)。那么下一个问题就是如何在用户进行编辑的时候实时的对关键字进行标记。刚开始的时候,觉得蛮简单的,根本没当回事来考虑,相应JEditorPane的文本改变时间就mo问题了,结果看了一下,JEditorPane没法相应这个事件。所以最后在光标事件(CarteEvents)中来相应。
随之而来的一个问题就是,按照我的那种方式进行标记需要在这个事件响应中重写EditorPane的内容,那么,CaretEvent会被激活,本来这不能算是问题的,在事件相应的时候DisableEvents就可以了,但是不行(可以DisableAWTevent,但是SWING,不行),如果可以,请哪位兄弟告知。所以昨天被郁闷了一天。
最后用的办法,就是在相应事件的时候,先把事件的apater给remove掉,最后在装上,结果证明可行。但是又出现问题,在相应的方法内调用JEditorPane 的setText方法出错,如果是原文没问题,如果文本发生变化,就出错。原因不知,估计与线程之间的start 有关系,解决办法是用了一个多线程内类,用它来setText。
现在看我的这个编辑器,实在是个很拙劣的东西啊.

接下来开始做语法检查,说是语法检查,但是就我看,其实应该是括号匹配问题,因为我读不了.h文件,也没有内建编译器。
继续努力中...
原创粉丝点击