Java:通过应用程序打开游戏时未触发 keyPressed 事件 class
Java: keyPressed events not firing when game is opened through application class
我正在 java 中制作游戏,我想将其提取到 运行nable Jar 中。为了使这成为可能,我做了这个 class:
public class AfterglowApp extends Application {
public void start(Stage primaryStage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(AfterglowApp.class.getResource("afterglow.fxml"));
Pane root = fxmlLoader.load();
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args) {
launch(AfterglowApp.class, args);
}
}
在我的 FXML 控制器中,我有一个 keyListener,它在 FXML 文件中的锚点窗格的 keyPressed 上触发。当我通过 Eclipse 运行 它作为 FXML 应用程序时,这工作正常,但是当我 运行 它与应用程序 class 一起使用时,没有按键注册(尽管它仍然正常注册鼠标点击)。
我感觉 FXML 文件的锚点窗格失去了焦点,这就是导致它无法注册按键的原因,但我不知道如何解决这个问题(如果这就是问题的话) .
我意识到我可能遗漏了一些愚蠢的东西,但我们将不胜感激。
我是对的,这是一件非常简单的事情。我所要做的就是打电话
.requestFocusInWindow();
应用程序启动后在我的锚窗格上。很抱歉浪费了所有阅读本文的人的时间。万一其他人遇到类似情况,我会留下这个问题。
我正在 java 中制作游戏,我想将其提取到 运行nable Jar 中。为了使这成为可能,我做了这个 class:
public class AfterglowApp extends Application {
public void start(Stage primaryStage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(AfterglowApp.class.getResource("afterglow.fxml"));
Pane root = fxmlLoader.load();
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args) {
launch(AfterglowApp.class, args);
}
}
在我的 FXML 控制器中,我有一个 keyListener,它在 FXML 文件中的锚点窗格的 keyPressed 上触发。当我通过 Eclipse 运行 它作为 FXML 应用程序时,这工作正常,但是当我 运行 它与应用程序 class 一起使用时,没有按键注册(尽管它仍然正常注册鼠标点击)。
我感觉 FXML 文件的锚点窗格失去了焦点,这就是导致它无法注册按键的原因,但我不知道如何解决这个问题(如果这就是问题的话) .
我意识到我可能遗漏了一些愚蠢的东西,但我们将不胜感激。
我是对的,这是一件非常简单的事情。我所要做的就是打电话
.requestFocusInWindow();
应用程序启动后在我的锚窗格上。很抱歉浪费了所有阅读本文的人的时间。万一其他人遇到类似情况,我会留下这个问题。