首页 > 解决方案 > 读出是否在其他控制器中选择了 RadioButton

问题描述

我目前正在研究 JavaFX 项目,如果选择了 RadioButton,我需要从另一个类访问 FXML 对象以显示 ComboBox。

因此,例如,我有 4 个 RadioButtons 称为

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

谢谢。

标签: javajavafxfxml

解决方案


您可以创建静态 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;
...
}

推荐阅读