JComponentのKeyBinding一覧を取得する
Total: 6106
, Today: 5
, Yesterday: 0
Posted by aterai at
Last-modified:
概要
JComponent
から、ActionMap
、InputMap
を取得し、KeyBinding
の一覧表を作成します。
Screenshot
Advertisement
サンプルコード
List<Integer> focusType = Arrays.asList(
JComponent.WHEN_FOCUSED, JComponent.WHEN_IN_FOCUSED_WINDOW,
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
table.setAutoCreateRowSorter(true);
JPanel p = new JPanel(new GridLayout(2, 1, 5, 5));
p.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
p.add(componentChoices);
p.add(new JButton(new AbstractAction("show") {
@Override public void actionPerformed(ActionEvent e) {
model.setRowCount(0);
JComponent c = ((JComponentType) componentChoices.getSelectedItem()).component;
for (Integer f: focusType) {
loadBindingMap(f, c.getInputMap(f), c.getActionMap());
}
}
}));
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JComboBox
で選択されたコンポーネントに割り当てられているデフォルトのKeyBinding
をJTable
に一覧表示できます。