У меня есть компонент с несколькими JTables.Я установил пользовательские TransferHandlers на столах.Теперь я хочу, чтобы средство вызывало команды вырезания / копирования / вставки для этих таблиц с помощью:
- Menubar, который работает на всплывающем меню JTable
- , которое в настоящее время сосредоточено наJTables
- Сочетание клавиш, которое работает на текущем JTable
В ActionMap JTable уже есть записи для «вырезать», «копировать», «вставить».Действия с этими клавишами делают правильно, вызывая TransferHandler.
Я пробовал следующее:
dataTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(cutMenuItem.getAccelerator(), "cut");
Это работает, когда я нажимаю cmd-X, но не когда я выбираю«вырезать» из меню.Я предполагаю, что это потому, что меню потребляет событие, и оно никогда не попадает в JTable.
Я могу придумать несколько хакерских способов реализовать это, но есть ли чистый способ сделать это?Как я могу получить свои пункты меню для отправки их actionCommand
в текущий компонент?