JavaFX:如果另一个对象处于活动状态,则用于禁用按钮的 FXML 脚本

rug*_*y82 1 java user-interface javafx fxml

我正在使用 JavaFX 和 jdk 1.8。

使用 FXML 文件上的脚本,可以在禁用另一个按钮时禁用一个按钮吗?

fab*_*ian 5

您可以在 fxml 中使用表达式绑定。

假设您想将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 -->
Run Code Online (Sandbox Code Playgroud)

如果b1稍后需要将其添加到场景中,则需要使用<fx:define>beforeb2创建按钮并<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" />
Run Code Online (Sandbox Code Playgroud)