读出是否在其他控制器中选择了 RadioButton

Read out if RadioButton is selected in other controller

我目前正在开发 JavaFX 项目,我需要从另一个 class 访问 FXML 对象,以便在选择 RadioButton 时显示组合框。

例如我有 4 个 RadioButtons 调用

//First Controller
@FXML
private RadioButton radioButtonS1, radioButtonS2, radioButtonS3, radioButtonS4;

我必须在另一个控制器中读出它们以将它们设置为可见我的 ComboBoxes 被称为:

//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 中选择了哪个 RadioButton 并使 CombBox 可见?

谢谢。

可以创建static 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;
...
}