1
我已經有一個組件上有幾個JTables。我已經在表上安裝了自定義TransferHandler。現在,我想一個辦法來調用這些表上的剪切/複製/粘貼命令,通過:結合JMenu剪貼板功能,加速器和actionMenu支持(最佳實踐)
- 的菜單欄,這對目前主要集中JTable中
- 彈出菜單中的JTable中
- 鍵盤快捷方式工作,它適用於當前關注的JTable
JTable的actionMap已經包含「剪切」,「複製」,「粘貼」條目。這些鍵的操作執行正確的操作,調用TransferHandler。
我已經試過如下:
dataTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(cutMenuItem.getAccelerator(), "cut");
這當我按下CMD-X,而不是當我從菜單中選擇「剪切」的作品。我認爲這是因爲菜單消耗了事件,並且它永遠不會到達JTable。
我可以想到一些hacky的方法來實現這一點,但有沒有一個乾淨的方式去實現它?我怎樣才能讓我的菜單項目發送他們的actionCommand
到當前集中的組件?
對於那篇CCP文章(聽衆泄漏內存,一方面,鍵盤快捷鍵不是跨平臺的)並不着迷,但它似乎是做我想做的最好的方式。謝謝! –