2010-05-08 30 views
1

我正在爲我的大學項目編制一個地圖編輯器。我有一個問題,地圖面板不應該監聽關鍵事件。 當我添加一個ToolBarPane(它擴展了JPanel)時,它帶有JComponent,比如JButton,實現了ActionListener的JComboBox和將該地圖面板(它擴展了JPanel)一起添加到Frame(我使用BorderLayout)。我有System.out.println語句來測試是否收到按鍵,而不是打印,如果我刪除了工具欄,鍵監聽器再次工作,mouseListenner也被禁用,就像keyListener一樣,這意味着我可以'處理新聞事件等,但mouseListener工作正常,我仍然可以處理鼠標移動事件。JPanel沒有聽到關鍵事件時有一個JButton的子組件

這裏是一個屏幕截圖它是如何工作沒有ToolBarPane

http://img684.imageshack.us/img684/3232/sampleku.png

請注意,您可以用鼠標把圖像在地圖上,你還可以用鼠標選擇圖像就像一個激光

img291.imageshack.us/img291/8020/failve.png (請添加http前:工具,按你可以在不同的圖像之間進行切換數字鍵,直到我加入這說明這樣的ToolBarPane能正常工作那我只能發佈一個超鏈接)

(因爲我是一個新用戶,我不能在這裏發表圖片)

隨着ToolBarPane上我已不再能夠處理關鍵事件。

我想這可能是由於焦點轉移到該面板莫名其妙,但不知道。

難道身體知道這一點,可以幫助我嗎?

非常感謝

回答

0

你不應該使用的KeyListener。

Swing被設計爲使用鍵綁定,這是更加靈活。查看我的Key Bindings的快速總結,其中還包含Swing教程的鏈接,其中包含更詳細的內容。

(因爲我是一個新用戶,我不能在這裏發表圖片)

的圖像沒有太大的幫助反正。如果您需要更多幫助,請在發佈SSCCE後顯示問題(嘗試上述建議後)。

相關問題