簡體   English   中英

Java FXML窗口在啟動時未響應

[英]java FXML window not responding on launch

我一直在使用Java將棋盤游戲轉換為計算機游戲。 我的游戲完全通過Shell控制台運行,並通過Shell輸入和輸出。 我現在正在嘗試實現GUI來處理輸入和輸出。 這是我第一次使用FXML或任何GUI組件。 我正在嘗試實現一個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,版本都是最新的。 我不知道是什么原因導致這種情況發生,因此請您多加投入。

因此,我不確定這里發生了什么,但是我只是將代碼還原為舊的提交,並添加了FXML功能,它工作正常。 我應該刪除此帖子嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM