可以在Scene Builder中使用FXML属性绑定吗?

时间:2017-11-29 20:31:06

标签: java javafx scenebuilder

是否可以从场景构建器本身中创建FXML属性绑定(disable="${myNode.disable}"以将禁用属性与myNode的禁用值绑定)?

我能完成它的唯一方法是手动编辑输出文件。这是一个例子:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.Insets?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.VBox?>

<VBox spacing="10.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <TextField disable="${checkbox.selected}"/>
      <CheckBox fx:id="checkbox" mnemonicParsing="false" text="Disable Field" />
   </children>
   <opaqueInsets>
      <Insets />
   </opaqueInsets>
   <padding>
      <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
   </padding>
</VBox>

并加载:

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class App extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        VBox parent = FXMLLoader.load(getClass().getResource("FxmlBindingTest.fxml"));

        Scene scene = new Scene(parent);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);

    }

}

当我将此文件加载回场景构建器时,该节点上有一个黄色警告图标:

Scene builder snip

真正有趣的是,如果我从场景构建器加载预览,则值不受约束

“场景构建器”不会覆盖或删除任何更改上的绑定文本,除了对该属性本身的更改 - 正如预期的那样。

0 个答案:

没有答案