2010-10-16 46 views
1

我想要一個JTextField(或其他類似文本的輸入,它支持焦點和光標 - 或者我應該編碼自己的?),我想要完全控制直接輸入。即我想忽略大部分輸入,並專門處理其他輸入。看起來JFormattedTextField不是我想要的,因爲它不是在即時輸入上進行驗證,而是在焦點丟失時進行驗證。java:JTextField上的完全控制輸入

我試着添加一個按鍵偵聽器,但它有點不明顯,我應該如何使用它。看起來我可以在keyPressed中追蹤光標更改(通過按鍵)或複製/粘貼(通過按鍵快捷鍵),我可以捕獲keyTyped中的所有正常鍵輸入。我不知道如何捕捉光標變化或通過鼠標進行復制/粘貼(出於某種原因,右鍵單擊不起作用,所以通過鼠標在上下文菜單中複製/粘貼似乎是不可能的,但我不確定這是否可能是一個不同的問題,或者如果它應該工作,而不是由於某種原因)。

我基本上要像下面這樣處理:

interface InputHandler { 
    void addStringAt(int pos, String s); 
    void deleteSubString(int pos, int len); 
    void setFocusTo(int pos); 
} 

它應該是絕對不可能讓用戶得到任何東西在未通過此處理去文本框。

現在,我似乎需要關心很多特定情況(例如在某些體系結構中,可能會有一些上下文菜單可以複製/粘貼或輸入內容,手動處理所有鼠標事件等)。 )。

或者其他方式,這也涉及到很多特殊處理:自己重新編碼這樣的輸入字段。這仍然看起來更加節省,因爲我可以肯定地知道,沒有任何棘手的方法可以繞過處理程序(我確實必須知道這一點)。順便說一句,我該怎麼做?我想擴展一個JLabel。我怎樣才能擴展它,使它可以得到重點?

我想知道你將如何實現這樣的東西。

回答