JavaFX:FXML文档中的绑定表达式

JavaFX:FXML文档中的绑定表达式,javafx,javafx-8,fxml,Javafx,Javafx 8,Fxml,在JavaFX8中,仍然可以将FXML中的控件属性直接绑定到控制器的属性吗? 比如: <?xml version="1.0" encoding="UTF-8"?> <?import java.net.*?> <?import javafx.geometry.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?>

在JavaFX8中,仍然可以将FXML中的控件属性直接绑定到控制器的属性吗? 比如:

<?xml version="1.0" encoding="UTF-8"?>
<?import java.net.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>

<GridPane xmlns:fx="http://javafx.com/fxml"
   fx:controller="application.PaneController" minWidth="200">
   <Label id="counterLabel" text="${controller.counter}" />
   <Button translateX="50" text="Subtract 1"
      onAction="#handleStartButtonAction" />
</GridPane>


上述方法似乎不起作用。

是的,假设您在控制器中实施了正确的方法,这是可能的:

public class PaneController {

    private final IntegerProperty counter = new SimpleIntegerProperty(100);

    public IntegerProperty counterProperty() {
        return counter;
    }

    // this is also required
    public int getCounter() {
        return counter.get();
    }

    public void handleStartButtonAction() {
        counter.set(counter.get() - 1);
    }

}

另外,我不确定是否将两个
节点
放在同一个单元格中是最佳决策…

我只实现了CourProperty getter,而不是普通的getter。好的,这很有效。感谢您使用e(fx)clipse插件,您可以通过以下方式生成此getter/setter/property:right clic/source/generate JavaFX getter和setter