Forms 将表单添加到弹出阶段(自定义阶段内容)

Forms 将表单添加到弹出阶段(自定义阶段内容),forms,javafx,stage,Forms,Javafx,Stage,我有一个名为AddNewUser的按钮,点击该按钮会弹出一个包含AddUser表单的弹出窗口。 以下是我对该按钮的功能: public void btnAddeNewClicked(){ final TextField name = new TextField() ; final TextField addr = new TextField() ; final TextField wp = new TextField() ;

我有一个名为AddNewUser的按钮,点击该按钮会弹出一个包含AddUser表单的弹出窗口。 以下是我对该按钮的功能:

public void  btnAddeNewClicked(){


        final TextField name = new TextField() ;
        final TextField addr = new TextField() ;
        final TextField wp = new TextField() ;
        final TextField state = new TextField() ;
        final TextField loginName = new TextField() ;
        final Label labelUsername = new Label();
        final Label labelAddress = new Label();
        final Label labelWebPage = new Label();
        final Label labelState = new Label();
        final Label labelloginName = new Label();
        final Button btn = new Button("Add");


        Stage dialog = new Stage();
        dialog.initStyle(StageStyle.UTILITY);
        Scene scene = new Scene(btn);
        dialog.setScene(scene);
        dialog.show();


}

问题是我不知道如何将我的表格添加到我的阶段。非常感谢您的帮助:)

选择一个合适的布局
父节点
,将您的
节点添加到其中。有很多可能性,所以我只是用一个非常简单的例子来演示:
VBox
,它只是将所有的子项放在一个垂直的行中:

final TextField name = new TextField() ;
final TextField addr = new TextField() ;
final TextField wp = new TextField() ;
final TextField state = new TextField() ;
final TextField loginName = new TextField() ;
final Label labelUsername = new Label();
final Label labelAddress = new Label();
final Label labelWebPage = new Label();
final Label labelState = new Label();
final Label labelloginName = new Label();
final Button btn = new Button("Add");

VBox root = new VBox();
root.getChildren().addAll(name,
                          addr,
                          wp,
                          state,
                          loginName,
                          labelUsername,
                          labelAddress,
                          labelWebPage,
                          labelState,
                          labelloginName,
                          btn);

Stage dialog = new Stage();
dialog.initStyle(StageStyle.UTILITY);
Scene scene = new Scene(root);
dialog.setScene(scene);
dialog.show();

请注意,如果需要更复杂的布局,这些布局也可以用作其他布局的子级。对于初学者来说,使用SceneBuilder可能更容易,但无论如何,您都应该知道布局如何定位孩子。很容易看到生成的fxml文件中的子-父关系在java代码中重现相同的布局。

选择一个合适的布局
parent
,将
节点添加到其中。有很多可能性,所以我只是用一个非常简单的例子来演示:
VBox
,它只是将所有的子项放在一个垂直的行中:

final TextField name = new TextField() ;
final TextField addr = new TextField() ;
final TextField wp = new TextField() ;
final TextField state = new TextField() ;
final TextField loginName = new TextField() ;
final Label labelUsername = new Label();
final Label labelAddress = new Label();
final Label labelWebPage = new Label();
final Label labelState = new Label();
final Label labelloginName = new Label();
final Button btn = new Button("Add");

VBox root = new VBox();
root.getChildren().addAll(name,
                          addr,
                          wp,
                          state,
                          loginName,
                          labelUsername,
                          labelAddress,
                          labelWebPage,
                          labelState,
                          labelloginName,
                          btn);

Stage dialog = new Stage();
dialog.initStyle(StageStyle.UTILITY);
Scene scene = new Scene(root);
dialog.setScene(scene);
dialog.show();
请注意,如果需要更复杂的布局,这些布局也可以用作其他布局的子级。对于初学者来说,使用SceneBuilder可能更容易,但无论如何,您都应该知道布局如何定位孩子。很容易看到生成的fxml文件中的子-父关系在java代码中重现相同的布局。

使用任意一个添加弹出窗口的内容。稍后,将此布局添加为场景的根

在下面的示例中,我使用了

输出

使用任意一个按钮添加弹出窗口的内容。稍后,将此布局添加为场景的根

在下面的示例中,我使用了

输出