2013-07-19 63 views
3

我已經添加了一個JPopupMenu與某些JMenuItems到我的Java應用程序中的JTable。 然後我爲這些JMenuitems設置加速器。 現在我的問題是,當我嘗試使用這些熱鍵,他們不工作,直到我打開該JPopupMenu。 當那個彈出菜單在那個時候打開時,熱鍵工作正常,這真的沒用。請幫幫我。JMenuItem的JPopupMenu熱鍵

回答

2

加速器綁定僅適用於添加到GUI的組件。在調用彈出窗口之前,彈出式菜單不會添加到GUI中。

你可以試試:

  1. 添加您的彈出菜單相框的菜單欄。然後加速器將被識別
  2. 在彈出式菜單中手動爲每個加速器添加KeyBindings。有關更多信息,請閱讀有關How to Use Key Bindings的Swing教程。
+0

第一個解決方案是不可能的,因爲我的應用程序只有一個jframe rest是動態加載的jpanel。我也嘗試了第二個選項,它沒有工作。 – user2067787

+0

+1 @ user2067787:作爲參考,['ImageApp'](http://stackoverflow.com/a/5129757/230513)是一個使用相同的「操作」菜單和彈出菜單的示例。 – trashgod

+0

'動態加載的jpanels' - 您可以在加載面板時動態更新菜單欄。 「我也嘗試了第二種方法,但沒有奏效。」 - 當您使用Key Bindings時,發佈您的SSCCE證明問題。 – camickr