2017-01-10 99 views
1

是否JavaFX 8仍然可以直接在FXML中將控件屬性綁定到控制器的屬性上? 喜歡的東西:JavaFX:在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> 

似乎不起作用。

回答

1

是的,這是可能的假設您實現在控制器的正確方法:

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); 
    } 

} 

而且我不知道,如果在相同的細胞位置上配置Node s是最好的決定......

+0

我只實現了couterProperty getter,但不是普通的。 好的,這個工程。謝謝 – TosKen

+0

使用e(fx)clipse插件,您可以通過以下方式生成此getter/setter /屬性:right-clic/source/generate JavaFX Getters and Setters – pdem