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

Я только воспользовался getterProperty getter, но не простой. Хорошо, это работает. Спасибо – TosKen

+0

С помощью e (fx) плагина clipse вы можете сгенерировать этот getter/setter/property: right-clic/source/generate JavaFX Getters and Setters – pdem

Смежные вопросы