Javafx 如何在if条件下使用KeyEvent?
使用Javafx,我有一个文本区域,如果用户按下Shift和Enter键,我希望得到新行 我使用&&我也使用了+Javafx 如何在if条件下使用KeyEvent?,javafx,Javafx,使用Javafx,我有一个文本区域,如果用户按下Shift和Enter键,我希望得到新行 我使用&&我也使用了+ private void KeyRelsesed_send(KeyEvent event) { if (event.getCode() == (KeyCode.SHIFT && KeyCode.ENTER)) { area.appendText("\n"); } Shift键是一个修改键。该类具有布尔返回方
private void KeyRelsesed_send(KeyEvent event) {
if (event.getCode() == (KeyCode.SHIFT && KeyCode.ENTER)) {
area.appendText("\n");
}
Shift键是一个修改键。该类具有布尔返回方法,用于在按下另一个非修改器键时检查修改器键是否已按下。如果要检查Shift+Enter,则可以使用:
if (event.isShiftDown() && event.getCode() == KeyCode.ENTER) {
// Do something...
}
注意,这将允许其他修改器关键点也被关闭。如果你想做点什么。。。如果Shift以外的一个或多个修改键处于关闭状态,则不应执行代码,然后必须明确检查它们是否处于关闭状态,例如!event.isAltDown。在这种情况下,如果您创建自己的并测试KeyEvent是否与之匹配,可能会更清晰、更容易实现
KeyCombination combo = new KeyCodeCombination(KeyCode.ENTER, KeyCombination.SHIFT_DOWN);
if (combo.match(event)) {
// Do something...
}
根据以下文件,这将需要打开其他修改器键:
为指定的主键和指定的修饰符列表构造KeyCodeCombination。所有未明确列出的修改器关键点都设置为默认的“释放”值
注意:上面写着“发布”,但他们的意思是“向上”
如果需要了解同时按下多个非修改键,则需要跟踪哪些键已按下但尚未释放。关于这一点,请查看已被接受的答案,即。可能重复的“谢谢”,它起作用了我为send输入了enter,为new line输入了enter+Shift,因此我确实使用了if和if-else,因此可能有人需要它