2010-11-29 16 views
0

雖然您可以將ActionS添加到ComponentS,但您不能將它們添加到JFrame,JApplet或JDialog等ContainerS。由於我在Google上找不到任何幫助,我覺得我應該分享我的發現,以便將來人們不必浪費太多時間。如果您認爲我錯過了某些東西或放棄某些東西,請隨時添加信息。Swing ContainerS(JFrameS等)中的動作

解決之道在於.getRootPane(),那麼這將允許你添加像這樣的動作:。

jframe.getRootPane()getInputMap中(JComponent.WHEN_FOCUSED)(KeyStroke.getKeyStroke( 「插入」) ,insertAction);

希望這會對後代有所幫助。

+0

不是一個真正的問題....更多的時髦資本S – 2010-11-29 23:13:55

+0

我遵循http://meta.stackexchange.com/questions/17845/etiquette-for-answering-your-own-question中列出的程序,因爲就像我說的那樣,Google上沒有任何東西可以找到。至於首都S,Sun Javadoc決定指出S是複數而不是類名的一部分。 – 2010-11-29 23:27:04

回答

0

確定您可以將Key綁定添加到JPanel。它是一個Swing組件。

我不確定「WHEN_FOCUSED」InputMap是否有效。通常焦點位於組件上,而不是根窗格。

查看Key Bindings獲取默認綁定列表以及我使用密鑰綁定的簡單示例。