如何在javaFX中翻译弹出窗口?

时间:2014-08-06 15:08:38

标签: java javafx javafx-2 javafx-8 scenebuilder

有没有办法在java FX中翻译弹出窗口(不是Node)等东西? 例如淡入淡出过渡,平移过渡或任何时间线过渡.... 感谢的

2 个答案:

答案 0 :(得分:1)

创建一个属性并使用Timeline来"动画"财产。使用属性注册侦听器,并在其值更改时更新窗口。

例如:

import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;

public class TranslateWindowExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button moveButton = new Button("Move");

        moveButton.setOnAction(event -> {
            double currentX = primaryStage.getX() ;
            DoubleProperty x = new SimpleDoubleProperty(currentX);
            x.addListener((obs, oldX, newX) -> primaryStage.setX(newX.doubleValue()));
            KeyFrame keyFrame = new KeyFrame(Duration.seconds(1), new KeyValue(x, currentX + 100));
            Timeline animation = new Timeline(keyFrame);
            animation.play();
        });

        StackPane root = new StackPane(moveButton);
        Scene scene = new Scene(root, 250, 150);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

答案 1 :(得分:0)

您能举例说明您打电话给弹出窗口的内容吗? 例如,您可以在主舞台的顶部创建一个新舞台。 您还可以使用一些Tooltip类在窗口顶部添加一些文本。 如果你想要更多的经典窗口,你应该看看Alert类。

安东尼