在使用官方JavaFXPorts from Gluon为Raspberry Pi 3编写JavaFX应用程序时,我遇到了以下问题:按下键盘上的小键盘并没有给我任何KeyEvent
,而在我的普通电脑上它应该做到的!
这是一个证明我问题的最小可验证示例:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class InputTest extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) {
Scene s = new Scene(new Group(), 800, 600, Color.ALICEBLUE);
s.setOnKeyPressed((e) -> {
KeyCode code = e.getCode();
System.out.println(code);
if (code.equals(KeyCode.ESCAPE)) {
System.exit(0); // To be able to exit easily.
}
});
stage.setScene(s);
stage.show();
}
}
只需按下小键盘键,就不会触发任何事件,而普通键可以正常工作。
我也在Pi的标准开箱即用Raspian和Ubuntu 16.04下进行了测试。我不在两个系统上工作,独立于键盘布局。在其他程序中,小键盘可以正常工作。
我认为这个问题适用于所有必须使用GluonJavaFXPorts的嵌入式系统(Oracle不再支持嵌入式JavaFX),因此它并不是特定于Pi的问题。
任何帮助都将不胜感激。
注意:我刚刚在raspberrypi.stackexchange.com主持人的要求下迁移了这个问题
干杯