2010-03-18 20 views
1

我正在嘗試更改Swing中textarea中文本的字體。我應該在textarea上使用哪個監聽器來觸發一個讓程序啓動字體代碼的動作。在Swing中,什麼是在textarea中使用的最佳聽衆

所有的例子都在同一個類的所有擺動,讓你直接訪問textarea,但我有多個類;我知道我可以通過textarea進去,但這很sl。。

我只是不知道要啓動哪個偵聽器。

+2

你想聽什麼?這個問題並不清楚。 – 2010-03-18 20:54:35

+0

對不起;我有當前觸發AbstractActions的菜單條目。 – Kraagenskul 2010-03-18 21:01:30

+0

那麼聽衆進來了,那麼呢?你不會在你的一個動作中設置字體嗎? – 2010-03-18 21:04:13

回答

1

如果你正在收聽textarea,那麼它將取決於你希望用戶能夠改變他們輸入的字體的字體的方式。

如果您希望它們能夠在右鍵單擊/ etc時更改字體,或者您想監聽一系列按鍵時使用KeyListener,則可以使用MouseListener。

2

我試圖改變 文本的字體在擺動一個文本。

好一個JTextArea只能有一個單一的字體,因此,如果你想改變字體,你將有一些其他的成分,也許「更改字體」按鈕,您可以點擊。在這種情況下,您可以將ActionListener添加到該按鈕以更改文本區域的實際字體。

如果您確實需要更改所選文本片段上的字體,那麼您也無法使用JTextArea來執行此操作。您需要使用JTextPane。閱讀JTextPane API並在「文本組件特徵」中查看Swing教程的鏈接,以獲取有關在選定文本上更改屬性的示例。在這個原因你使用編輯器工具提供的動作。

所以基本上你需要閱讀Swing教程來找出使用Swing組件的基礎知識。

+0

我正在嘗試通過將textArea傳遞給我的操作來更改JTextArea中的所有字體。我想弄清楚的是如何製作它,所以我不必將textArea傳遞到我的動作中。 – Kraagenskul 2010-03-19 14:00:30

+0

EditorKit中定義的動作都是從TextAction擴展而來的。 TextAction提供了一個返回最後一個焦點文本組件的方法。因此,假設您希望在該文本區域執行操作,您還可以編寫要從TextAction擴展的操作。如果您希望在特定文本區域執行操作,則在創建自定義操作時,您需要將該文本區域作爲參數傳遞。 – camickr 2010-03-19 15:13:47

相關問題