我有很多 HBox,里面有一些不同的组件(RadioButton、Labels、Buttons ...)。 RadioButtons 在 ToggleGroup 中,因此只能选择 1 个 Radio Button。
我想向单选按钮添加一个 OnChange - 事件。如果 RadioButton 未被选中,则应该有一个事件触发器。如何将事件添加到单选按钮?
目前我有这样的代码,但它没有我想要的功能。
radio.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
if(!radio.isSelected()){
ivTriangleImg.setRotate(iRotateCoord2);
btnTriangle.setGraphic(ivTriangleImg);
}
if(group!=null){
group.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
@Override
public void changed(
ObservableValue<? extends Toggle> arg0,
Toggle arg1, Toggle arg2) {
}
});
}
}
});
我使用 JavaFX 2.0 和 Java 1.7,所以我不能使用 Lambda 函数或 JavaFx8/Java 1.8 的特殊组件函数
最佳答案
JavaFX 控件的状态由可观察的属性表示。您可以使用 control.propertyNameProperty()
和 add ChangeListener
s 访问这些属性对他们:
radioButton.selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> obs, Boolean wasPreviouslySelected, Boolean isNowSelected) {
if (isNowSelected) {
// ...
} else {
// ...
}
}
});
关于events - 单选按钮更改事件 JavaFx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26523393/