2014-05-12 29 views
0

我打算使對於使用帆布遊戲的聊天,但是這並不是問題的關鍵,這就是: http://prntscr.com/3igt4e有沒有更好的解決方案來使用KeyAdapter/KeyListener來實現我打算使用它的目的?

正如你可以看到,用戶在按住Shift鍵並按1,這通常會產生一個感嘆號,但在這種情況下,KeyAdapter會輸出一個移位。

e.isShiftDown()實際上不起作用。我真的不覺得我想用

如果(e.isShiftDown()& & [SpecificKey])

檢查每一個特定鍵被按下,反正,所以有一個關鍵的適配器選項,自動爲你做這個嗎?

+0

爲什麼選擇AWT而不是Swing?看到我對[Swing extras over AWT]的回答(http://stackoverflow.com/a/6255978/418556)有很多很好的理由放棄使用AWT組件。 –

回答

0

您可以使用多個案件,如:

case KeyEvent.VK_COMMA: return "COMMA"; 
case KeyEvent.VK_BRACERIGHT: return "BRACERIGHT"; 

其他選項是: VK_EXCLAMATION_MARK,VK_LEFT_PARENTHESIS等,你可以在任何好的IDE得到的所有此類案件列表或可參考的Documentation

+0

這不會工作,因爲我使用 int key = e.getKeyCode(); Game.getChat()。passText(e.getKeyText(key)); 將文本傳遞到正在聊天框中顯示的我的字符串。 – user3625168

+0

如果我添加 \t \t \t如果(鍵== KeyEvent.VK_EXCLAMATION_MARK){ \t \t \t \t Game.getChat()passText( 「!」)。 \t \t \t} 對此之後,它並沒有做一些奇怪的事情。 – user3625168

相關問題