2017-03-04 98 views
0

我想添加一個KeyListener到我的JFrame和按下的鍵將執行ActionListener類中的所有代碼。JFrame的keylistener與actionlistener

實施例:

當我按下F1,它會觸發的ActionListener類。完成所有的指示。

任何幫助? 預先感謝您。

回答

1

沒有KeyListener「調用」ActionListener。而是用所有的指令創建一個單獨的方法,並且KeyListener和ActionListener都調用這個方法。

此外,在這種情況下,請勿使用在鍵盤焦點可更改時性能反覆無常的KeyListener,而應傾向於使用Key Bindings

1

按下的鍵將執行ActionListener類中的所有代碼。

代替使用ActionListener,您可以使用ActionAction與ActionListner基本相同,但您可以定義更多的屬性,這些屬性可以更輕鬆地使用鍵盤。有關更多信息和工作示例,請閱讀Swing教程中關於How to Use Actions的部分。作爲附註,Swing組件旨在使用Actions。

一旦創建了Action你有不同的選擇:

  1. 您可以將Action添加到JMenuItem,如果你定義的「加速器」鍵,然後Action時,將自動F1鍵調用按下。

  2. 如果您不使用JMenuItem,那麼您需要手動將KeyStroke綁定到Action。有關手動添加綁定的基礎知識,請參閱[如何製作和移除關鍵綁定]上的Swing教程部分(http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html#howto)。