Re: [問題] 有沒有辦法鎖定Focus在特定的按鈕或物件上

看板java作者 (偶爾想擺爛一下)時間15年前 (2011/03/04 21:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《baconcsie (Bacon)》之銘言: : 請問板上各位大大,有沒有辦法鎖定Focus在特定的物件或是按鍵上? : 我的程式是打算當按下某個按鈕之後,就開始監聽鍵盤,每當按下一次鍵盤上任何 : 一個鍵,就會觸發一個事件,我嘗試直接讓Frame直接註冊keylisten,但行不通 : 似乎只有Button系列、Text系列的能註冊,但當我按鈕按下去之後,又不會自動 : Focus在註冊keylisten的物件上,還需要手動去點他一下,讓他Focus在上面, : 而且點到其他地方,也會造成Focus跑掉,所以我想請問,有沒有辦法直接鎖定 : Focus在特定的物件上,或是讓視窗可以註冊keylisten 1. 從 current keyboard focus manager 新增 KeyEventDispatcher 來攔截/監視 key event。 http://download.oracle.com/javase/6/docs/api/java/awt/KeyboardFocusManager.html#getCurrentKeyboardFocusManager() (http://tinyurl.com/4pguw72) http://download.oracle.com/javase/6/docs/api/java/awt/KeyboardFocusManager.html#addKeyEventDispatcher(java.awt.KeyEventDispatcher) (http://tinyurl.com/4ffl97d) or 2. 透過 java.awt.Toolkit 來全面性(in JVM)監聽 AWTEvent。 http://download.oracle.com/javase/6/docs/api/java/awt/Toolkit.html#addAWTEventListener(java.awt.event.AWTEventListener,%20long) (http://tinyurl.com/4zpp69t) or 3. hook system event queue。 http://download.oracle.com/javase/6/docs/api/java/awt/Toolkit.html#getSystemEventQueue() (http://tinyurl.com/48wuvte) http://download.oracle.com/javase/6/docs/api/java/awt/EventQueue.html#push(java.awt.EventQueue) (http://tinyurl.com/4h2h642) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.168.158 ※ 編輯: sbrhsieh 來自: 118.166.235.54 (03/05 02:22)
文章代碼(AID): #1DSEnJj_ (java)
文章代碼(AID): #1DSEnJj_ (java)