Ben*_*ind 3 java swing key-bindings
我想在我的 Swing 应用程序中有一个自定义 Tab 和 Shift+Tab 侦听器。textField当按下 TAB 键时,这适用于 JTextField =>
textField.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0), "Tab");
textField.getActionMap().put("Tab", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
navigateDown();
}
});
Run Code Online (Sandbox Code Playgroud)
但是,我想要实现Shift + Tab并且我已经使用了这个代码:-
textField.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
KeyStroke.getKeyStroke(KeyEvent.VK_SHIFT, KeyEvent.VK_TAB), "BackTab");
textField.getActionMap().put("BackTab", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
navigateUp();
}
});
Run Code Online (Sandbox Code Playgroud)
但是,这对我不起作用。感谢您的关注。
你的按键不正确。第二个整数不是键码而是修饰符。
像这样尝试:
textField.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
KeyStroke.getKeyStroke(KeyEvent.VK_TAB, java.awt.event.InputEvent.SHIFT_DOWN_MASK), "BackTab");
textField.getActionMap().put("BackTab", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
navigateUp();
}
});
Run Code Online (Sandbox Code Playgroud)
另请参阅 JavaDoc Keystroke.getKeyStroke()
| 归档时间: |
|
| 查看次数: |
763 次 |
| 最近记录: |