需要使用swing的java代码编辑器的建议

时间:2013-06-29 04:35:38

标签: java multithreading swing

我打算使用Swing编写一个java代码编辑器,主要功能是突出显示代码段,如关键字,字符串和变量。我需要一些关于如何实现程序的建议,我的一位朋友告诉我使用2个独立的线程,一个用于编辑,一个用于突出显示代码,但是如何在这两个线程之间建立通信?

如果我不使用单独的主题,它会对我的程序产生什么影响吗?

我真的很困惑。请帮我,提出一些建议。

编辑:更多问题我应该为此目的使用JEditorPane或JTextPane吗?

2 个答案:

答案 0 :(得分:2)

使用单独的线程将是一种开销。 在我看来,最好的方法是使用单个线程,编辑文本后,您可以解析它并根据您的逻辑突出显示。

但是如果你热衷于拥有单独的线程,那么你可以创建一个单独的荧光笔线程[它将根据你的逻辑突出显示关键字]但是编辑后的文本必须由你的主线程传递给它,所以不会有太多除非你的突出显示逻辑非常复杂,否则会获益。

答案 1 :(得分:2)

来自文档

  

Swing对象方法不是“线程安全的”:从中调用它们   多线程存在线程干扰或内存一致性   错误。

http://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html