Добавить сочетания клавиш для копирования и вставки действий для всех компонентов Swing - PullRequest
0 голосов
/ 17 марта 2020

Я прошел этот вопрос Java - Как я могу выбрать все строки в JTable, используя Command + ярлык в Ma c? о том, как добавить сочетания клавиш для Ma c. Я хочу знать, могу ли я использовать это, чтобы добавить эти сочетания клавиш ко всем компонентам, или я должен установить для каждого компонента, как показано ниже:

For JTABLE:
InputMap im = myTable.getInputMap( JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT );
final int CMD_BTN = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
im.put( KeyStroke.getKeyStroke( KeyEvent.VK_A, CMD_BTN ), "selectAll" );

1 Ответ

1 голос
/ 17 марта 2020

Каждый компонент Swing имеет родительский InputMap. Таким образом, вы должны иметь возможность изменить этот InputMap, и привязка должна работать для всех экземпляров этого типа. Например, чтобы добавить привязку для всех экземпляров JTable, вы будете использовать:

InputMap im = (InputMap)UIManager.get("Table.ancestorInputMap");

А для JTextArea вы будете использовать:

InputMap im = (InputMap)UIManager.get("TextArea.focusInputMap");

Чтобы увидеть, какая InputMap используется каждой проверкой компонента out: UIManager по умолчанию

...