我想问你能否获得多个密钥的密钥代码组合.例如,我可以从此示例中获取密钥代码:
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.TAB) {
}
Run Code Online (Sandbox Code Playgroud)
但是我怎么能得到这个例子的关键代码:
textField.setText("");
// Process only desired key types
if (event.getCode().isLetterKey()
|| event.getCode().isDigitKey()
|| event.getCode().isFunctionKey()) {
String shortcut = event.getCode().getName();
if (event.isAltDown()) {
shortcut = "Alt + " + shortcut;
}
if (event.isControlDown()) {
shortcut = "Ctrl + " + shortcut;
}
if (event.isShiftDown()) {
shortcut = "Shift + " + shortcut;
}
textField.setText(shortcut);
shortcutKeyEvent = event;
} else {
shortcutKeyEvent = null;
}
Run Code Online (Sandbox Code Playgroud)
是否可以获得这些密钥的密钥代码组合Ctrl + Tab或Ctrl + A?
Ulu*_*Biy 16
不,处理keyEvent只有一个main KeyCode,例如这个代码
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.TAB) {
}
}
Run Code Online (Sandbox Code Playgroud)
将处理TAB,ALT + TAB或CTRL + TAB等,如果你只关心CTRL + TAB,你有两个选择:
1)使用isControlDown()
public void handle(KeyEvent event) {
if (event.getCode() == KeyCode.TAB && event.isControlDown()) {
}
}
Run Code Online (Sandbox Code Playgroud)
2)使用KeyCodeCombination
final KeyCombination kb = new KeyCodeCombination(KeyCode.TAB, KeyCombination.CONTROL_DOWN);
...
...
public void handle(KeyEvent event) {
if (kb.match(event)) {
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13355 次 |
| 最近记录: |