我有这样的代码的ToggleButtons和听众在JavaFX的
@FXML
private ToggleButton tb1;
@FXML
private ToggleButton tb2;
@FXML
ToggleGroup group = new ToggleGroup();
String cpuLoad1 ="D:/myWorkspace/TestAttacks/input_folder/app_debug.apk";
String cpuLoad2 = "D:/myWorkspace/TestAttacks/input_folder/cpuLoad1.apk";
@FXML
private void onToggleClick(){
tb1.setUserData(cpuLoad1);
tb1.setToggleGroup(group);
tb2.setUserData(cpuLoad2);
tb2.setToggleGroup(group);
ChangeListener<Toggle> cLt = new ChangeListener<Toggle>(){
public void changed(ObservableValue<? extends Toggle> ov,
Toggle toggle, Toggle new_toggle){
if (new_toggle != null){
System.out.println(group.getSelectedToggle().getUserData().toString());
}else{
System.out.println("hello no");
}
}
};
group.selectedToggleProperty().addListener(cLt);
}
虽然我还没有使用的用户数据,事情是,每当我点击切换按钮,我得到所需的输出递增的顺序。
这里是输出:
hello no //click2
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk //click3
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk
hello no //click4
hello no
hello no
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk //click5
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk
hello no //click6
hello no
hello no
hello no
hello no
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk //click7
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk
D:/myWorkspace/TestAttacks/input_folder/app_debug.apk
在第一次点击我什么也没得到。
从第二次点击我开始获得这种输出。任何人都可以解释这种行为并为我提供解决方案吗?
Thanks.:)..It工作...你能告诉我怎么才能访问userdat后,我点击/切换按钮从关模式的on模式。 –
在你的监听器中,'new_toggle'包含在组中选择的切换。如果它为空,则表示没有选择切换(当前选定的切换关闭)。 – DVarga
如果点击另一个切换按钮,则一个切换按钮btn1(打开)的状态发生变化(关闭)。为什么?。如何管理这个。 –