有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在JavaFX中使用FXML创建自定义对话框?

如何在JavaFX中使用FXML创建自定义对话框

在网上的样本中,我看到的大多是这样的东西

@Override
public void start(Stage stage) throws Exception {
   Parent root =
      FXMLLoader.load(
         getClass().getResource( getClass().getSimpleName() + ".fxml" ));
   Scene scene = new Scene(root);

FXML从应用程序start()中加载并构建根节点

但如果我延长舞台呢?从FXML加载到哪里?在构造器里?还是在initStyle()?还是用其他方法


共 (1) 个答案

  1. # 1 楼答案

    您可以在主类中使用以下代码:

    FXMLLoader loader = new FXMLLoader(getClass().getResource("Sample.fxml"));
    Parent root = (Parent)loader.load();
    
    //Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));        
    Scene scene = new Scene(root);        
    stage.setScene(scene);
    stage.show();
    
    SampleController controller = (SampleController)loader.getController();
    controller.setStageAndSetupListeners(stage); 
    

    在此之后,在SampleController中创建一个函数setTageAndSetupListeners(),它将接受您的舞台,现在您可以轻松使用它