Jeśli używasz JavaFX 2 to zapewnia out-of-box rozwiązań zarówno dla architektury komponentów JavaBeans i obserwator wzorca projektowego. Ponadto daje dużą elastyczność w powiązaniu stanu zmiennych przez powiązania właściwości. Poniższy kod ilustruje zmiany właściwości zdarzeń i wiązanie zmiennych właściwości. Oczywiście można zawijać obiekty uzupełniające do właściwości, aby ukryć szczegóły, jak poniżej: getFlag()
i setFlag()
i używać ich w pozostałej części aplikacji.
public class Demo extends Application {
private BooleanProperty booleanProperty = new SimpleBooleanProperty(true);
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
// Add change listener
booleanProperty.addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
System.out.println("changed " + oldValue + "->" + newValue);
myFunc();
}
});
Button btn = new Button();
btn.setText("Toggle boolean flag");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
booleanProperty.set(!booleanProperty.get()); //toggle
System.out.println("toggled to " + booleanProperty.get());
}
});
// Bind to another property variable
btn.underlineProperty().bind(booleanProperty);
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
public boolean getFlag() {
return booleanProperty.get();
}
public void setFlag(boolean val) {
booleanProperty.set(val);
}
}
można pokazać nam jakiś kod? Nie sądzę, że to, o co prosisz, jest możliwe, ale ten sam efekt można osiągnąć w inny sposób. – chandsie