JavaFX 提供了一些動畫類,如 Timeline
、Transition
和 Animation
,用于創建和控制動畫。要實現 JavaFX Action 的動畫控制,你可以使用這些類來創建自定義動畫。
以下是一個簡單的示例,展示了如何使用 JavaFX 的動畫類來控制一個按鈕的動畫:
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class JavaFXActionAnimation extends Application {
@Override
public void start(Stage primaryStage) {
Button button = new Button("點擊我");
StackPane root = new StackPane();
root.getChildren().add(button);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("JavaFX Action Animation");
primaryStage.setScene(scene);
primaryStage.show();
// 創建一個 Timeline 對象,用于控制動畫
Timeline timeline = new Timeline();
timeline.setCycleCount(Timeline.INDEFINITE);
timeline.setAutoReverse(true);
// 創建一個 KeyFrame 對象,設置動畫的關鍵幀
KeyFrame keyFrame = new KeyFrame(Duration.seconds(1), new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// 在這里執行你想要的動作,例如改變按鈕的文本
button.setText("動畫中...");
}
});
// 將 KeyFrame 添加到 Timeline 中
timeline.getKeyFrames().add(keyFrame);
// 當按鈕被點擊時,開始或停止動畫
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
if (timeline.getStatus() == Timeline.Status.RUNNING) {
timeline.stop();
button.setText("點擊我");
} else {
timeline.play();
}
}
});
}
public static void main(String[] args) {
launch(args);
}
}
在這個示例中,我們創建了一個按鈕,并為其添加了一個點擊事件處理器。當按鈕被點擊時,動畫將開始或停止。動畫是通過 Timeline
類創建的,它包含一個 KeyFrame
,用于定義動畫的關鍵幀。在這個關鍵幀中,我們執行了一個簡單的動作:改變按鈕的文本。你可以根據需要修改這個動作,以實現你想要的效果。