Javafx 如何在if条件下使用KeyEvent?

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键是一个修改键。该类具有布尔返回方

使用Javafx,我有一个文本区域,如果用户按下Shift和Enter键,我希望得到新行

我使用&&我也使用了+

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,因此可能有人需要它