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

时间:2013-11-20 21:07:46

标签: java graphics javafx

如何在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 个答案:

答案 0 :(得分: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之后创建一个函数setStageAndSetupListeners(),它将接受你的舞台,现在你可以轻松使用它。