2011-09-27 21 views
1

我想要一些複合寬鍵盤快捷鍵。有問題的複合材料位於標籤文件夾中。我有一個小函數,它遍歷我的合成的所有孩子,併爲其中的每一個添加一個KeyboardAdapter。SWT:addFilter或addKeyListener複合

我遇到的問題是,當我打開的標籤按下按鍵沒有註冊。我首先將焦點集中在選項卡中的某個可選小部件上,然後才能正常工作。當我切換到另一個選項卡然後返回時,焦點仍然在那裏(例如,表格中的灰色選擇而不是藍色選區),但它仍然不起作用,直到我點擊某處。

我該怎麼做?我想過爲我的顯示器添加一個過濾器,但我只想要某個組合中的事件(以及其中的所有內容)。

謝謝

+1

你能發佈你的代碼嗎?這不是很清楚,你到底意味着什麼...... – Sorceror

回答

3

將鍵盤事件傳遞給具有鍵盤焦點的組件。複合材料不會獲得鍵盤焦點,它通常是他們的子組件之一,它會獲取它,然後開始接收關鍵事件(以防兒童不使用它們)。在父Shell上擁有關鍵偵聽器可能可行。

+0

我最終使用了一個KeyFilter,它有一些邏輯來檢查哪個小部件應該獲取事件並將其路由到這個小部件的控制器(我構建的一個類)。 –