从没有primaryStage的另一个类调用start

时间:2016-12-06 16:06:51

标签: javafx

我想制作一个应用程序,我有一个家庭场景,我有一个menubox,我可以添加到所有类的场景中。现在我想在menubox中添加一个eventhandler来切换到home场景。我需要一个primaryStage来调用home.start(舞台阶段)。 menubox类中不存在哪些内容。我想我需要从home类中获取primaryStage,并将其传递给home.start(primaryStage)。我不知道该怎么做。

到目前为止,这是我的代码:

家庭班:

count

和菜单栏类:

package login;

import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.MenuBar;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class Home {

//mysql connectie
Mysql mysql = new Mysql();

//private mqsql
private final String USERNAME = mysql.getUsername();
private final String PASSWORD = mysql.getPassword();
private final String CONN_STRING = mysql.getUrlmysql();


public void start(Stage primaryStage) {


    GebruikerAanmaken gebruikerAanmaken = new GebruikerAanmaken();
    Login log = new Login();
    GebruikerAanpassen gebruikerAanpassen = new GebruikerAanpassen();
    GevKofferReg gevKofferReg = new GevKofferReg();

    VerlKofferReg verlKofferReg = new VerlKofferReg();



    // deze vijf regels om een homeknop aan te roepen
    MenuB menuB = new MenuB();
    MenuBar menuBar = menuB.createMenuB();        
    BorderPane root = new BorderPane();
    menuBar.prefWidthProperty().bind(primaryStage.widthProperty());
    root.setTop(menuBar);



    GridPane grid = new GridPane();
    grid.setAlignment(Pos.CENTER);
    grid.setHgap(10);
    grid.setVgap(10);
    grid.setPadding(new Insets(25, 25, 25, 25));
    // deze regel moet ook aangemaakt worden voor de homeknop
    root.setCenter(grid);

    Button buttonGebruikerAanmaken = new Button("Gebruiker aanmaken");
    Button buttonSignIn = new Button("Sign in");
    Button buttonGebruikerAanpassen = new Button("Gebruiker aanpassen");
    Button buttonGevondenKofferRegistreren = new Button("Gevonden bagage registreren");
    Button buttonVerlKofferReg = new Button("Verloren bagage registreren");

    if(Login.rol.equals("admin")){
        root.getChildren().add(buttonGebruikerAanmaken);
        grid.add(buttonGebruikerAanmaken, 0, 6);
        root.getChildren().add(buttonGebruikerAanpassen);
        grid.add(buttonGebruikerAanpassen, 4, 6);
    }else{
        root.getChildren().add(buttonSignIn);
        grid.add(buttonSignIn, 4, 6);
        grid.add(buttonGevondenKofferRegistreren, 3,6);

    }

    buttonGebruikerAanpassen.setOnAction((ActionEvent e) -> {
        gebruikerAanpassen.star(primaryStage);
    });

    buttonSignIn.setOnAction((ActionEvent e) -> {
        log.start(primaryStage);
    });

    buttonGebruikerAanmaken.setOnAction((ActionEvent e) -> {
        gebruikerAanmaken.start(primaryStage);
    });

    buttonGevondenKofferRegistreren.setOnAction((ActionEvent e) -> {
        gevKofferReg.start(primaryStage);
    });

    buttonVerlKofferReg.setOnAction((ActionEvent e) -> {
        verlKofferReg.start(primaryStage);
    });


    // deze aanpassen van grid naar root..
    Scene scene = new Scene(root, 1200, 920);

    primaryStage.setTitle("Home");
    primaryStage.setScene(scene);
    primaryStage.show();
}

public static void main(String[] args) {

}

}

我知道编码不是最好的,但我是编程的新手,这是一个 作业。提前谢谢!

0 个答案:

没有答案