2009-12-16 96 views

回答

4

我知道上面給出將工作接受的答案,但是這是不是應該在Swing做的方式。 KeyListeners通常只應用於AWT應用程序,因爲它們不支持更抽象的API。

使用Swing時,你應該使用Key Bindings。所有Swing組件都使用Key Bindings。 Key Bindings博客文章提供了一些關於如何使用它們的基礎知識,幷包含有關「如何使用關鍵綁定」的Swing教程的鏈接以獲取更多詳細信息。

2

你必須使用的keyPressed或這裏調用keyReleased。 引用SUN的API javadoc:

「按鍵類型」事件是較高級的,並且通常不依賴於平臺或鍵盤佈局。當輸入一個Unicode字符時會生成這些字符

因此,keyTyped方法不會針對箭頭鍵調用,因爲它們不會生成Unicode字符。

+0

謝謝。這是工作:) – artaxerxe 2009-12-16 13:38:52

1

您可以通過addKeyListener方法添加您自己的KeyListener爲每個java.awt.Component提供的方法。在您的聽衆中,使用keyPressed

箭頭鍵是操作鍵,可以通過isActionKey確認此事件:

返回true如果鍵觸發事件是一個操作鍵。 操作鍵的示例包括剪切,複製,粘貼,上一頁,大寫鎖定,箭頭和功能此信息僅適用於按鍵和鍵釋放事件

參見:http://java.sun.com/docs/books/tutorial/uiswing/events/keylistener.html

相關問題