Forms 将表单添加到弹出阶段(自定义阶段内容)
我有一个名为AddNewUser的按钮,点击该按钮会弹出一个包含AddUser表单的弹出窗口。 以下是我对该按钮的功能: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() ;
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代码中重现相同的布局。使用任意一个添加弹出窗口的内容。稍后,将此布局添加为场景的根
在下面的示例中,我使用了
输出
使用任意一个按钮添加弹出窗口的内容。稍后,将此布局添加为场景的根
在下面的示例中,我使用了
输出