Si está utilizando JavaFX 2 a continuación proporciona una solución fuera de la caja, tanto para la arquitectura de componentes JavaBeans y el patrón de diseño Observer. Además, ofrece una gran flexibilidad para asociar el estado de las variables con los enlaces de propiedad. El código siguiente ilustra los eventos modificados por la propiedad y el enlace de las variables de propiedad. Por supuesto, puede ajustar los descriptores de acceso a la propiedad para ocultar detalles como getFlag()
y setFlag()
a continuación, y usarlos en el resto de la aplicación.
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);
}
}
¿Nos puede mostrar algo de código? No creo que lo que estás preguntando sea posible, pero el mismo efecto se puede lograr de una manera diferente. – chandsie