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.event.EventHandler; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.input.MouseEvent; 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 NullTextAlign2 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)); } }); Scene scene = new Scene(new Group(r, t)); scene.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler() { public void handle(MouseEvent event) { if (t.getTextAlignment() != null) { System.out.println("setting to null"); t.setTextAlignment(null); } else { System.out.println("setting to LEFT"); t.setTextAlignment(TextAlignment.LEFT); } } }); stage.setScene(scene); 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(); } }