如何在JavaFx中创建打开另一个窗口的按钮,而不使用GUI builder、FXML、swing或awt?

如何在JavaFx中创建打开另一个窗口的按钮,而不使用GUI builder、FXML、swing或awt?,java,javafx,scene,stage,Java,Javafx,Scene,Stage,我需要创建一个按钮来在JavaFX中打开一个窗口。不要摇摆。没有fxml 你能有多个舞台吗?我想不是,但我看到一个网站说的不是这样 我是否必须让按钮创建一个扩展应用程序的类,覆盖start() 我已经看了以下内容,但没有用。我已经看到了很多,我只是不知道有什么或者如何实现它。如何修改代码使其工作 https://o7planning.org/en/11533/opening-a-new-window-in-javafx https://coderanch.com/t/663804/java/ca

我需要创建一个按钮来在JavaFX中打开一个窗口。不要摇摆。没有fxml

你能有多个舞台吗?我想不是,但我看到一个网站说的不是这样

我是否必须让按钮创建一个扩展应用程序的类,覆盖start()

我已经看了以下内容,但没有用。我已经看到了很多,我只是不知道有什么或者如何实现它。如何修改代码使其工作

https://o7planning.org/en/11533/opening-a-new-window-in-javafx
https://coderanch.com/t/663804/java/call-window-click-button-current
https://o7planning.org/en/11533/opening-a-new-window-in-javafx

Button to push new customers onto queue. Opens a new popu window (stage) to enter customer information.

        btSave.setText("Add");
        btSave.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {                

                //SCENE 3 OF 3: ADD SCENE, Pane & Nodes
                GridPane addPane = new GridPane();

                //add nodes
                addPane.add(new Label("Customer Name"), 1,1);
                addPane.add(tfName, 1,2);
                addPane.add(new Label("Size of Party"), 1,3);
                addPane.add(tfParty, 1,4);
                addPane.add(new Label("Customer Phone Number"), 1,5);
                addPane.add(tfPhone, 1,6);
                addPane.add(btSave, 1, 7);

                Scene addScene = new Scene(addPane, 300, 250);
                primaryStage.setTitle("Add Customer to Queue");
                primaryStage.setScene(addScene);
                primaryStage.show();

    //                Customer cust = new Customer();
    //                cust.name = tfName.getText();
    //                cust.party = Integer.parseInt(tfParty.getText());
    //                cust.phone = Integer.parseInt(tfPhone.getText()); 
    //                qLine.offer(cust);
                }
            });

I would like the button to show "Add" and would like it to open a new window when clicked.
https://o7planning.org/en/11533/opening-a-new-window-in-javafx
https://coderanch.com/t/663804/java/call-window-click-button-current
https://o7planning.org/en/11533/opening-a-new-window-in-javafx
按钮将新客户推到队列中。打开一个新的popu窗口(阶段)以输入客户信息。
btSave.setText(“添加”);
btSave.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
//场景3/3:添加场景、窗格和节点
GridPane addPane=新建GridPane();
//添加节点
addPane.add(新标签(“客户名称”),1,1);
addPane.add(tfName,1,2);
addPane.add(新标签(“一方大小”),1,3);
addPane.add(tfParty,1,4);
addPane.add(新标签(“客户电话号码”),1,5);
addPane.add(tfPhone,1,6);
addPane.add(btSave,1,7);
场景addScene=新场景(addPane,300250);
setTitle(“将客户添加到队列”);
初级阶段。设置场景(添加场景);
primaryStage.show();
//客户客户=新客户();
//cust.name=tfName.getText();
//cust.party=Integer.parseInt(tfParty.getText());
//cust.phone=Integer.parseInt(tfPhone.getText());
//qLine.报价(客户);
}
});
我想按钮显示“添加”,并希望它打开一个新的窗口时,点击。

如果您询问有关打开新阶段的问题,以下代码可能会对您有所帮助

Button btSave = new Button();
btSave.setText("Add");
btSave.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {                

        //SCENE 3 OF 3: ADD SCENE, Pane & Nodes
        GridPane addPane = new GridPane();

        //add nodes
        addPane.add(new Label("Customer Name"), 1,1);
        addPane.add(tfName, 1,2);
        addPane.add(new Label("Size of Party"), 1,3);
        addPane.add(tfParty, 1,4);
        addPane.add(new Label("Customer Phone Number"), 1,5);
        addPane.add(tfPhone, 1,6);
        addPane.add(btSave, 1, 7);

        Stage addStage = new Stage();
        Scene addScene = new Scene(addPane, 300, 250);
        addStage.setTitle("Add Customer to Queue");
        addStage.setScene(addScene);
        addStage.show();
    }
});
Button btSave=新建按钮();
btSave.setText(“添加”);
btSave.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
//场景3/3:添加场景、窗格和节点
GridPane addPane=新建GridPane();
//添加节点
addPane.add(新标签(“客户名称”),1,1);
addPane.add(tfName,1,2);
addPane.add(新标签(“一方大小”),1,3);
addPane.add(tfParty,1,4);
addPane.add(新标签(“客户电话号码”),1,5);
addPane.add(tfPhone,1,6);
addPane.add(btSave,1,7);
Stage addStage=新阶段();
场景addScene=新场景(addPane,300250);
addStage.setTitle(“将客户添加到队列”);
addStage.setScene(addScene);
addStage.show();
}
});
尝试将“添加场景”设置为新阶段,而不是当前主阶段。Stage newStage=newStage();newStage.setScene(addScene);该按钮未显示“添加”,单击该按钮不会导致任何操作。该按钮未显示“添加”,单击该按钮不会导致任何操作。然后我意识到我信任答案,因此问题一定在其他地方。我查看了窗格上的按钮,以确保未标记的按钮实际上是保存/添加按钮。然后我意识到我正在将添加功能设置为保存按钮,但在窗格上有一个添加按钮。。。它总是简单的东西,让你。我们认为这一定是我们做错了什么,而实际上更可能是粗心的错误。谢谢你@sai