下面列出了怎么用javax.swing.ComponentInputMap的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Creates new form CompareResultImages
*/
public CompareResultImages() {
initComponents();
toReviewList.setModel(new DefaultListModel());
fillList();
setSize(800, 600);
setExtendedState(getExtendedState() | MAXIMIZED_BOTH);
actualImage.setStretch(false);
referenceImage.setStretch(false);
acceptAction.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("control D"));
InputMap keyMap = new ComponentInputMap(acceptButton);
keyMap.put(KeyStroke.getKeyStroke("control D"), "accept");
ActionMap actionMap = new ActionMapUIResource();
actionMap.put("accept", acceptAction);
SwingUtilities.replaceUIActionMap(acceptButton, actionMap);
SwingUtilities.replaceUIInputMap(acceptButton, JComponent.WHEN_IN_FOCUSED_WINDOW, keyMap);
}
private void filterInputMap(JComponent component, int condition) {
InputMap imap = component.getInputMap(condition);
if (imap instanceof ComponentInputMap) {
imap = new F8FilterComponentInputMap(component, imap);
} else {
imap = new F8FilterInputMap(imap);
}
component.setInputMap(condition, imap);
}
public EuropeButton(String text, int keyEvent, String command,
ActionListener listener) {
setOpaque(true);
setText(text);
setActionCommand(command);
addActionListener(listener);
InputMap closeInputMap = new ComponentInputMap(this);
closeInputMap.put(KeyStroke.getKeyStroke(keyEvent, 0, false),
"pressed");
closeInputMap.put(KeyStroke.getKeyStroke(keyEvent, 0, true),
"released");
SwingUtilities.replaceUIInputMap(this,
JComponent.WHEN_IN_FOCUSED_WINDOW,
closeInputMap);
}