Swing里面的文本輸入組件有很多, 如JTextField, JTextArea, JTextPane, JEditorane,這些組件的功能確實是非常的強大,但在實際項目中使用的時候,方覺得它們的功能還遠遠不能滿足我們的需求。
最近看了Swing文本輸入組件的源代碼,感受頗深,要說起它們的實現方式,真可謂一個"妙"字,我自己也是被這種設計模式深深地吸引住,按捺不住想寫一個Java代碼編輯器來深入學習一下Swing的文本組件以及它們的設計模式。
Swing的文本編輯器都是繼承自JTextComponent,JTextComponent類提供了很多操作文本的基本方法,但是作為一個代碼編輯器,要支持不同顏色顯示的語法高亮和定制格式等功能,而這些功能在JEditorPane似乎已經有了它們雛形,因此,我們的編輯器應該是站在JEditorPane這個巨人的肩上來實現JavaCodeEditor,將JTextComponent作為它的"爺爺"
在查看本系列文檔之前,請先熟悉一下Swing文本組件相關的各個類,我也只是做一個學習總結,希望可以拋磚引玉。