JavaFX KeyEvent

时间:2015-08-01 08:05:33

标签: java javafx cmd keyevent

我正在使用以下代码监听KeyEvents:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Sandpit extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Group root = new Group();
        Scene scene = new Scene(root);
        scene.setOnKeyPressed(e -> System.out.println(e.getCode()));
        primaryStage.setScene(scene);
        primaryStage.setOnCloseRequest(e -> System.exit(0));
        primaryStage.show();
    }
}

我在使用Java 8的Mac(OS X 10.10.4)上运行此代码。

当我输入组合键Command-Period(cmd-。)时,即按住命令键并输入句点键,我得到以下输出:

COMMAND
PERIOD
A

我不知道这个" A" KeyEvent来自。我试过的其他每个组合都按预期工作。

任何人都可以解释这个并建议如何摆脱它吗?

备选关键字:cmd-period command-period cmd-。命令 -

1 个答案:

答案 0 :(得分:0)

以下是来自Windows 7用户的一些反馈(当然没有Command键,但我们使用CTRL代替)。具有PERIOD的所有组合CTRL,SHIFT,ALT,WINDOWS等按预期工作。因此,我猜测Mac COMMAND键会像添加该字符一样有趣。事实上,如果您检查Mac键盘序列,您会发现Mac将COMMAND PERIOD视为ESCape。虽然这并不能解释' A'在我的书中,我认为你需要集中注意力。