import javafx.animation.KeyFrame; import javafx.animation.KeyValue; import javafx.animation.Timeline; import javafx.application.Application; import javafx.beans.InvalidationListener; import javafx.beans.Observable; import javafx.beans.property.DoubleProperty; import javafx.beans.property.SimpleDoubleProperty; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.text.Text; import javafx.scene.text.TextAlignment; import javafx.stage.Stage; import javafx.util.Duration; public class NullTextAlign extends Application { public static void main(String argv[]) { launch(argv); } @Override public void start(Stage stage) { final Rectangle r = new Rectangle(300, 300); r.setFill(Color.RED); final Text t = new Text("Null test"); t.setTranslateX(20); t.setTranslateY(20); final DoubleProperty hue = new SimpleDoubleProperty(); hue.addListener(new InvalidationListener() { public void invalidated(Observable observable) { r.setFill(Color.hsb(hue.get(), 1.0, 1.0)); if (hue.get() > 180) { t.setTextAlignment(null); } } }); stage.setScene(new Scene(new Group(r, t))); stage.show(); KeyValue kv = new KeyValue(hue, 360.0); KeyFrame kf = new KeyFrame(Duration.seconds(5), kv); Timeline tl = new Timeline(kf); tl.setCycleCount(Timeline.INDEFINITE); tl.play(); } }