2017-01-10 3 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의를 배치하는 것이 최선의 결정인지 잘 모르겠습니다을

+0

나는 couterProperty getter 만 구현했지만 일반 객체는 구현하지 않았습니다. 좋습니다. 감사합니다 – TosKen

+0

e (fx) clipse 플러그인을 사용하면 getter/setter/property를 생성 할 수 있습니다 : right-clic/source/generate JavaFX Getters and Setters – pdem