我正在将JavaFX与jdk 1.8一起使用。
是否可以使用FXML文件上的脚本在禁用另一个按钮时禁用一个按钮?
答案 0 :(得分:4)
您可以在fxml中使用expression binding。
假定您要在此处将一个按钮的Button.disable
属性绑定到另一个按钮的Button.disabled
属性:
<CheckBox fx:id="cb" text="button 1 disabled"/>
<Button fx:id="b1" text="button 1" disable="${cb.selected}"/> <!-- disable button iff the checkbox is checked -->
<Button text="button 2" disable="${b1.disabled}"/> <!-- disable this button iff b1 is disabled -->
如果以后需要将b1
添加到场景中,则需要在<fx:define>
之前使用b2
创建按钮,并使用<fx:reference>
添加按钮稍后再将其投放到现场。
<fx:define>
<Button fx:id="b1" text="button 1" disable="${cb.selected}"/>
</fx:define>
<Button text="button 2" disable="${b1.disabled}"/>
<fx:reference source="b1" />