我打算使用Swing编写一个java代码编辑器,主要功能是突出显示代码段,如关键字,字符串和变量。我需要一些关于如何实现程序的建议,我的一位朋友告诉我使用2个独立的线程,一个用于编辑,一个用于突出显示代码,但是如何在这两个线程之间建立通信?
如果我不使用单独的主题,它会对我的程序产生什么影响吗?
我真的很困惑。请帮我,提出一些建议。
编辑:更多问题我应该为此目的使用JEditorPane或JTextPane吗?
答案 0 :(得分:2)
使用单独的线程将是一种开销。 在我看来,最好的方法是使用单个线程,编辑文本后,您可以解析它并根据您的逻辑突出显示。
但是如果你热衷于拥有单独的线程,那么你可以创建一个单独的荧光笔线程[它将根据你的逻辑突出显示关键字]但是编辑后的文本必须由你的主线程传递给它,所以不会有太多除非你的突出显示逻辑非常复杂,否则会获益。
答案 1 :(得分:2)
来自文档
Swing对象方法不是“线程安全的”:从中调用它们 多线程存在线程干扰或内存一致性 错误。
http://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html