2014-10-01 42 views
0

我正在使用JEditorPane作爲組件來顯示代碼。 JEdi​​torPane駐留在我的Netbeans平臺應用程序的自定義PropertyEditorSupport中,並顯示在OutlineView和Properties窗口中。在ENTER上完成輸入到JEditorPane中

我已經將JEditorPane僅限於一行,使用DocumentFilter。但是我無法重建JTextField所具有的funcionality,通過按ENTER鍵完成對組件的輸入。

我已經想過將一個KeyListener事件添加到我的JEditorPane中,但不知道該如何處理事件。是否有一種方法被稱爲「完成文本輸入」?

回答

0

我正在使用JEditorPane作爲組件來顯示代碼。 我已經將JEditorPane限制爲只有一行

這兩個語句似乎相互矛盾。通常代碼由多行組成,而不是一行。

在任何情況下,如果您只是顯示文本,那麼我會使用JTextPane,因爲它支持文本屬性。 JEdi​​torPane用於顯示HTML。

我已經想過加入的KeyListener事件

不要使用KeyListener的。 Swing旨在與Key Bindings一起使用。基本上你創建一個Action(在你的情況下,你會擴展TextAction),並且你將Action綁定到KeyStroke。查看Key Bindings,其中包含更多信息以及How to Use Key Bindings上Swing教程的鏈接。

+0

我正在使用JEditorPane,因爲它具有內容類型的能力。這使我能夠在Netbeans內部爲這種內容類型註冊自定義語法突出顯示。 我同意你的意見,通常可能超過一行。在我的用例中,我們只使用JEditorPane輸入一行簡單的代碼來提供一種快速配置方法。 – padde 2014-10-02 07:41:07

+0

@padde,以及JEditorPane是一個側面問題,Key Bindings回答了您有關處理Enter鍵的問題。 – camickr 2014-10-02 14:01:38