Text 在JavaFX中使用字符串翻译转换

Text 在JavaFX中使用字符串翻译转换,text,javafx,translate,Text,Javafx,Translate,我想垂直移动字符串,该字符串被转换为文本,然后实现 转化为过渡。当我开始的时候,什么都没发生。你知道它是怎么工作的吗。 谢谢 代码: 公共类Pohyb扩展应用程序{ @Override public void start(Stage primaryStage) { Group root = new Group(); Scene scene = new Scene(root, 300, 300); scene.setFill(Paint.valueOf("B0B0B0")

我想垂直移动字符串,该字符串被转换为文本,然后实现 转化为过渡。当我开始的时候,什么都没发生。你知道它是怎么工作的吗。 谢谢

代码:

公共类Pohyb扩展应用程序{

@Override
public void start(Stage primaryStage) {

    Group root = new Group();
    Scene scene = new Scene(root, 300, 300);
    scene.setFill(Paint.valueOf("B0B0B0"));
    primaryStage.setTitle("Canvas");


    primaryStage.setScene(scene);
    startTransition(scene);
    primaryStage.show();   


}

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    launch(args);
}

private void startTransition(Scene scene) {


    //OBDELNÍK
     final Rectangle rect = new Rectangle(32, 32);
     rect.setLayoutX((300/2)- (32/2));
     rect.setLayoutY((300/2)- (32/2));
     rect.setFill(Paint.valueOf("ffffff"));

     Text text = new Text("A");
     text.setLayoutX(145);
     text.setLayoutY(155);


     Group root = (Group) scene.getRoot();
     root.getChildren().add(rect);
     root.getChildren().add(text);

      final TranslateTransition translate = new TranslateTransition(new Duration(1000));
        translate.setNode(text);
        translate.setFromY(text.getLayoutY());
        translate.setToX(text.getLayoutY() + 100);
        translate.setAutoReverse(true);
        translate.setCycleCount(5);
        translate.play();
}    }

如果增加舞台的大小,您将看到动画正在工作,但Y坐标高于预期

如果查看javadoc中的
TranslateTransition
,它表示默认情况下将使用
translateY
属性。因此这将起作用:

final TranslateTransition translate = new TranslateTransition(new Duration(1000));
translate.setNode(text);
translate.setFromY(text.getTranslateY());
translate.setToY(text.getTranslateY()+100);
translate.setAutoReverse(true);
translate.setCycleCount(5);
translate.play();
这也会起作用,因为如果未提供
toY
属性,则将使用
byY
属性:

final TranslateTransition translate = new TranslateTransition(new Duration(1000));
translate.setNode(text);
translate.setByY(100);
translate.setAutoReverse(true);
translate.setCycleCount(5);
translate.play();

非常感谢。我没有意识到“翻译”的可能性。现在它起作用了。