2012-03-06 40 views
1

我有問題根據我的IT學院的最終項目..我必須做一個簡單的文本編輯器(如記事本),而不使用JTextArea(GUI Java),我必須使自己的JTextArea ..是否可以在不使用JTextArea的情況下在java中構建一個簡單的文本編輯器?

Idea /主題=自己的文本編輯器

算法=可是沒有任何想法尚未

數據結構=繩(二叉樹會員)

需求=打字不JTextArea中......

我有可能做到這一點?一個面板(或其他類似的東西)是否可以有一個監聽器或者讓一個監聽器來這樣做? 簡單思考,第一步我只是想嘗試在面板上打字,絕對算法需要,但我沒有得到正確的算法到目前爲止。這可能嗎?

我的想法是,即時打字的文本存儲到一棵樹..是繩索(二叉樹的成員)爲我的數據結構?

感謝您的幫助...

+1

爲什麼教授會給你一個不可能完成的任務?有可能的。 – 2012-03-06 18:34:11

回答

5

這是可能的。

如您所述使用JPanelKeyListenerMouseListener

您需要一個型號(Document)。對於最簡單的情況,可以是例如StringBuilder,您可以在其中添加內容並顯示StringBuilder內容。

您需要插入位置(int字段)來指示編輯的發生位置。

您需要字體場保留所有的字體信息在編輯器中使用。

覆蓋paintComponent()並使用FontMetrics要測量的文本並計算必要的寬度/高度。首先,我會創建一個沒有換行的文本區域。

實施viewToModel/modelToView的方法。他們應該計算給定x,y和x,y對於給定插入位置的插入符的位置。

+0

StanislavL THX對您有所幫助。我會跟您的建議嘗試。我認爲這是做..很簡單 如果我有任何問題,我會再次問... – ordinaryBoys 2012-03-07 15:58:36

相關問題