2016-10-03 7 views
0

FXML 파일과 지정된 Java 클래스가있는 JavaFX 응용 프로그램이 해당 FXML의 컨트롤러 역할을합니다. 클래스 속성을 FXML의 값에 바인딩하려면 어떻게해야합니까? 예를 들면 :FXML의 컨트롤러 클래스 속성 참조

내 컨트롤러 클래스 :

public class MyController{ 
    ... 
    @FXML 
    static String myString = "this is text"; 
    ... 
} 

그리고 다음 FXML : 나는 위를 한 경우

<Pane fx:controller="MyController"> 
    ... 
    <String fx:value="MyController.myString"> 
    ... 
</Pane> 

에서, fx:value는 문자 "MyController.myString"에 결합한다. 컨트롤러에 설정 한 정적 변수에 어떻게 바인드합니까?

답변

1

당신은

<MyController fx:constant="myString"/> 

(당신이 FXML 파일에 컨트롤러 클래스에 해당하는 수입을 가정)를 사용할 수 있습니다. 테스트하지는 않았지만 아마도 myString 결승을해야 할 것입니다.

<fx:define> 
    <SimpleStringProperty fx:id="myString" /> 
</fx:define> 

뭔가

<Label text="${myString}" /> 

에 바인딩 : 당신이 뭔가 변수에 바인딩 할 경우


, 당신은 FXML 자체의 속성을 정의 할 수 있습니다, 일정하지 즉, 물론 다른 값과 마찬가지로 제어기에 주입 할 수 있습니다.

public class MyController { 

    @FXML 
    private StringProperty myString ; 

    public StringProperty myStringProperty() { 
     return myString ; 
    } 

    public final String getMyString() { 
     return myStringProperty().get(); 
    } 

    public final void setMyString(String myString) { 
     myStringProperty().set(myString); 
    } 

    // ... 
}