带控制器按钮的JAVAFX

带控制器按钮的JAVAFX,java,button,javafx,controller,Java,Button,Javafx,Controller,我试图从控制器2中的控制器1到达1按钮,该按钮不是静态的,因此我无法到达他:/ public class NeuesSpielController { @FXML public Button sStarten; @FXML public Button farbeAuswaehlen; public void farbeAuswaehlen() throws IOException, InterruptedException { Stag

我试图从控制器2中的控制器1到达1按钮,该按钮不是静态的,因此我无法到达他:/

    public class NeuesSpielController {
    @FXML
    public Button sStarten;
    @FXML
    public Button farbeAuswaehlen;

    public void farbeAuswaehlen() throws IOException, InterruptedException {

    Stage test = new Stage();
    AnchorPane test2 = FXMLLoader.load(getClass().getResource("Farbwahl.fxml"));
    test.setScene(new Scene(test2));
    test.setMinHeight(200.00);
    test.setMinWidth(400.00);
    test.show();
}
这是我的第二个控制器

public class FarbwahlController {
private MainController main;
@FXML
Button blau;
@FXML
Button rot;
@FXML
Button schwarz;
@FXML
Button weiss;
@FXML
Button gruen;
@FXML
Button gelb;
@FXML
Label bannerFarbe;
static Spielfigur figur;

public void initialize() throws IOException {
    figur = NeuesSpielController.getSpielfigur();
    if (figur != null) {
        if (figur.farbe == null) {
            bannerFarbe.setText(figur.spielernameKomplett() + " " + bannerFarbe.getText());
        }else{
        FXMLLoader loader = new FXMLLoader(getClass().getResource("NeuesSpiel.fxml"));
        NeuesSpielController controller = loader.getController();


        weiss.getScene().getWindow().hide();
在这一点上,我想从控制器1到达“sStarten”按钮,以便解锁它

    controller.sStarten.setDisable(true);
    }
}

@FXML
public void wahlBlau() throws IOException {

    if (figur.farbe == null) {
        figur.farbe = Farbe.BLAU;
    }
    blau.setDisable(true);
    NeuesSpielController.setSpielfigur(figur);
    initialize();
}

public void wahlGelb() throws IOException {
    if (figur.farbe == null) {
        figur.farbe = Farbe.GELB;
    }
    gelb.setDisable(true);
    NeuesSpielController.setSpielfigur(figur);
    initialize();
}

public void wahlGruen() throws IOException {
    if (figur.farbe == null) {
        figur.farbe = Farbe.GRUEN;
    }
    gruen.setDisable(true);
    NeuesSpielController.setSpielfigur(figur);
    initialize();
}

public void wahlRot() throws IOException {
    if (figur.farbe == null) {
        figur.farbe = Farbe.ROT;
    }
    rot.setDisable(true);
    NeuesSpielController.setSpielfigur(figur);
    initialize();
}

public void wahlSchwarz() throws IOException {
    if (figur.farbe == null) {
        figur.farbe = Farbe.SCHWARZ;
    }
    schwarz.setDisable(true);
    NeuesSpielController.setSpielfigur(figur);
    initialize();
}

public void wahlWeiss() throws IOException {
    if (figur.farbe == null) {
        figur.farbe = Farbe.WEISS;
    }
    weiss.setDisable(true);
    NeuesSpielController.setSpielfigur(figur);
    initialize();
}

public void init(MainController mainController) {
    main = mainController;

}
 }

我的想法是按下“farbeAuswaehlen”按钮,一个新的舞台就要开始了,玩家可以在那里选择颜色。当每个人都选择了自己的颜色时,窗口将消失,sStarten按钮将解锁,以便程序继续

阅读用两种不同语言编写的代码非常困难SIM抱歉:/I我是初学者,这样对我来说更容易您甚至不需要加载FXML,更不用说显示它了。因为您没有加载它,所以控制器将为null,并且
controller.sStarten.setDisable(true)将给出空指针异常。即使您确实加载了它,也不会显示它,因此您将禁用一个实际上不可见的按钮,这是毫无意义的。