Java 如果在其他控制器中选择了RadioButton,则读取

Java 如果在其他控制器中选择了RadioButton,则读取,java,javafx,fxml,Java,Javafx,Fxml,我目前正在从事JavaFX项目,如果选择了RadioButton,我需要从另一个类访问一个FXML对象,以显示一个组合框 例如,我有4个单选按钮,叫做 //First Controller @FXML private RadioButton radioButtonS1, radioButtonS2, radioButtonS3, radioButtonS4; 我必须在另一个控制器中读取它们以将它们设置为可见。我的组合框称为: //Second Controller @FXML private

我目前正在从事JavaFX项目,如果选择了RadioButton,我需要从另一个类访问一个FXML对象,以显示一个组合框

例如,我有4个单选按钮,叫做

//First Controller
@FXML
private RadioButton radioButtonS1, radioButtonS2, radioButtonS3, radioButtonS4;
我必须在另一个控制器中读取它们以将它们设置为可见。我的组合框称为:

//Second Controller
@FXML
private ComboBox comboS1A, comboS1E1, comboS1E2;

@FXML
private ComboBox comboS2A, comboS2E1, comboS2E2;

@FXML
private ComboBox comboS3A, comboS3E1, comboS3E2;

@FXML
private ComboBox comboS4A, comboS4E1, comboS4E2;
那么,如何在SecondController中看到在FirstController中选择了哪个单选按钮,并使Combox可见


谢谢。

您可以创建静态int变量,该变量包含所选的RadioButton编号

public static int selectedCombo = -1;
并将这些行放入第一个控制器的初始化方法中

radioButtonS1.setOnAction(e->{
       selectedCombo = 0;
});

radioButtonS2.setOnAction(e->{
   selectedCombo = 1;
});
...
在第二个控制器中,您需要进行切换:

switch(selectedCombo) {
case 0: 
// make visible the comboBox 1
break;
case 1: 
// make visible the comboBox 2
break;
...
}

关于StackOverflow这个主题还有很多其他问题/答案。我建议你看看这个: