- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个 ToggleButton,我希望它们都绑定(bind)到一个 boolean 属性,这样当一个 ToggleButton 被选中时,另一个 ToggleButton 不会被选中,并且 BooleanProperty 为真,反之亦然。
这是我尝试过的。
FXML 文件:
<VBox xmlns:fx="http://javafx.com/fxml" fx:controller="my.package.MainController" styleClass="Tool" fx:id="root">
<HBox spacing="10">
<fx:define>
<ToggleGroup fx:id="modeToggleGroup"/>
</fx:define>
<ToggleButton fx:id="manualModeBtn" text="Manual Mode" selected="true" toggleGroup="$modeToggleGroup"/>
<ToggleButton fx:id="automaticModeBtn" text="Automatic Mode" toggleGroup="$modeToggleGroup"/>
</HBox>
<!-- other stuff -->
</VBox>
Controller 文件:
public class MainController {
@FXML
private ToggleButton manualModeBtn;
@FXML
private ToggleButton automaticModeBtn;
private BooleanProperty isAutomaticMode;
public void initialize() {
isAutomaticMode = new SimpleBooleanProperty();
automaticModeBtn.selectedProperty.bindBidirectional(isAutomaticMode);
}
}
ToggleGroup 确保不会同时选择两个按钮,但我仍然可以取消选择它们,这是我不希望成为可能的。
如何将另一个 ToggleButton 绑定(bind)到 boolean 属性的对面(即 not()
)?
最佳答案
您可以通过使用监听器来做到这一点:
public class MainController {
@FXML
private ToggleButton manualModeBtn;
@FXML
private ToggleButton automaticModeBtn;
public void initialize() {
manualModeBtn.selectedProperty().addListener((obs, wasSelected, isNowSelected) -> automaticModeBtn.setSelected(! isNowSelected));
automaticModeBtn.selectedProperty().addListener((obs, wasSelected, isNowSelected) -> manualModeBtn.setSelected(! isNowSelected));
}
}
请注意 RadioButton
几乎已经具有此功能(对于单选按钮,您不能“取消选择”它),因此您可以简单地使用 RadioButton
相反。备注this question ,如果这只是它们的外观。
关于java - 将两个 ToggleButtons 绑定(bind)到一个 BooleanProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48215373/
我正在为 JavaFX 开发一个幻灯片菜单,在它的定义中,我不断地使用 getScene() 方法来引用节点所在场景的高度和宽度已添加。 问题是幻灯片菜单在场景定义之前定义,返回 NullPointe
我正在尝试将 JavaFX BooleanPropety 添加到由 Hibernate 保留的模型中,但出现以下错误。 Caused by: org.hibernate.MappingExceptio
我喜欢使用属性类,但我不喜欢用多长的句子来做简单的事情。 我想扩展 SimpleBooleanProperty 类,这样就不需要做这样的事情: myProperty.setValue(!myPrope
我有两个 ToggleButton,我希望它们都绑定(bind)到一个 boolean 属性,这样当一个 ToggleButton 被选中时,另一个 ToggleButton 不会被选中,并且 Boo
我正在编写一个代码,它可以从其他代码的一部分中获取一些 bool 值,并相应地改变屏幕上某些圆圈的颜色。但是,我在尝试将 bool 值绑定(bind)到颜色时遇到了问题。我最终得到了这个: unit1
我是一名优秀的程序员,十分优秀!