окно java FXML не отвечает при запуске - PullRequest
0 голосов
/ 03 июня 2018

Я превращаю настольную игру в компьютерную игру с использованием Java.У меня игра полностью запускается через консоль оболочки с вводом и выводом через оболочку.Я сейчас пытаюсь реализовать графический интерфейс для обработки ввода и вывода.Я впервые работаю с FXML или любыми компонентами графического интерфейса.Я пытаюсь реализовать подход Model View Controller для достижения этой цели, и я планирую использовать Scene Builder для генерации своего кода FXML.Я прошел несколько уроков по этому вопросу и считаю, что мой код настроен правильно для загрузки файла .fxml и связывания файла с контроллером.Вот мой код FXML:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<VBox prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml"
      fx:controller="com.DeadWood.Controller">

    <Label text="I love bacon"/>
    <Button text="Submit"/>

</VBox>

Вот мой основной класс

  public class Game extends Application implements EventHandler<ActionEvent>{

  private Stage window;
  private AnchorPane rootLayout;

  public static void main(String[] args){
      System.out.println("Welcome to DeadWood!");
      System.out.println("This is a shell based implementation of a board game and all user input will be in the form of an integer.");
      System.out.println("Enjoy!");
      System.out.println("-------------------------");

      launch(args);
  }

  @Override
  public void start(Stage primaryStage) throws Exception{

    try{
      Parent root = FXMLLoader.load(getClass().getResource("View.fxml"));
      this.window = primaryStage;
      this.window.setTitle("DeadWood");
      Scene scene = new Scene(root);
      this.window.setScene(scene);
      this.window.show();
    }catch (Exception e){
      e.printStackTrace();
    }

, а вот контроллер

public class Controller implements Initializable {

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        System.out.println("View is now open!");
    }

}

Проблема, с которой я сталкиваюсь всегдаЯ запускаю программу, окно появляется только с заголовком и зависает.Когда я нажимаю на окно, я получаю (не отвечает), и оно совершенно не поддается взаимодействию. Это выглядит так

Если я использую ту же логику в новом проекте IntelliJ, он прекрасно загружает окно, поэтому я считаю, что все мои программы, jdks, версии обновлены.Я не уверен, что является причиной этого, и любой вклад будет высоко ценится.

1 Ответ

0 голосов
/ 03 июня 2018

Так что я не уверен, что здесь происходит, но я просто вернул свой код в старый коммит и добавил функциональность FXML, и он работает нормально.Должен ли я удалить это сообщение?

...