1 /* 2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 */ 5 package test.scenegraph.lcd.animation; 6 7 import javafx.animation.Interpolator; 8 import javafx.animation.KeyFrame; 9 import javafx.animation.KeyValue; 10 import javafx.animation.Timeline; 11 import javafx.application.Application; 12 import javafx.collections.FXCollections; 13 import javafx.event.EventHandler; 14 import javafx.scene.Scene; 15 import javafx.scene.control.ChoiceBox; 16 import javafx.scene.control.TextArea; 17 import javafx.scene.input.MouseEvent; 18 import javafx.scene.layout.Pane; 19 import javafx.scene.layout.VBox; 20 import javafx.scene.paint.Color; 21 import javafx.scene.shape.Circle; 22 import javafx.scene.text.FontSmoothingType; 23 import javafx.scene.text.Text; 24 import javafx.stage.Stage; 25 import javafx.util.Duration; 26 import test.javaclient.shared.Utils; 27 28 /** 29 * 30 * @author Alexander Petrov 31 */ 32 public class AnimationLCDTextTestApp extends Application { 33 34 /** 35 * @param args the command line arguments 36 */ 37 public static void main(String[] args) { 38 //launch(args); 39 Utils.launch(AnimationLCDTextTestApp.class, args); 40 } 41 42 @Override 43 public void start(Stage primaryStage) { 44 45 46 final TextArea testText = new TextArea("Test"); 47 testText.setPrefHeight(50); 48 testText.setPrefWidth(500); 49 50 final ChoiceBox<Interpolator> interpolatorChoiceBox = new ChoiceBox<Interpolator>(); 51 interpolatorChoiceBox.getItems().addAll(FXCollections.observableArrayList( 52 Interpolator.LINEAR, 53 Interpolator.DISCRETE, 54 Interpolator.EASE_BOTH, 55 Interpolator.EASE_IN, 56 Interpolator.EASE_OUT 57 )); 58 interpolatorChoiceBox.setPrefHeight(25); 59 interpolatorChoiceBox.setPrefWidth(500); 60 61 interpolatorChoiceBox.getSelectionModel().selectFirst(); 62 63 64 final Text lcdText = new Text(); 65 lcdText.setX(100); 66 lcdText.setY(100); 67 lcdText.setFontSmoothingType(FontSmoothingType.LCD); 68 lcdText.textProperty().bind(testText.textProperty()); 69 70 final Circle point = new Circle(100, 100, 2, Color.RED); 71 72 Pane temp = new Pane(lcdText, point); 73 temp.setMinWidth(500); 74 temp.setMinHeight(500); 75 temp.setOnMouseClicked(new EventHandler<MouseEvent>() { 76 @Override 77 public void handle(MouseEvent event) { 78 point.setCenterX(event.getX()); 79 point.setCenterY(event.getY()); 80 81 new Timeline( 82 new KeyFrame(Duration.seconds(5), 83 new KeyValue(lcdText.xProperty(), event.getX(), 84 interpolatorChoiceBox.getSelectionModel().getSelectedItem())), 85 new KeyFrame(Duration.seconds(5), 86 new KeyValue(lcdText.yProperty(), event.getY(), 87 interpolatorChoiceBox.getSelectionModel().getSelectedItem())) 88 ).play(); 89 } 90 }); 91 Pane root = new VBox(temp, testText, interpolatorChoiceBox); 92 Scene scene = new Scene(root, 500, 575); 93 94 primaryStage.setTitle("Test Animnation LCD Text"); 95 primaryStage.setResizable(false); 96 primaryStage.setScene(scene); 97 primaryStage.show(); 98 } 99 } 100 101 102