📅  最后修改于: 2023-12-03 14:42:23.089000             🧑  作者: Mango
JavaFX 是 Java 平台上的一个图形用户界面(GUI) 工具箱,可以很容易地创建并展示漂亮的界面和效果。
JavaFX 提供了丰富的 UI 控件、多媒体功能、动画效果等等,使得开发者在制作 UI 时更加简单高效。本文将介绍一些 JavaFX 支持的效果,并给出相应代码片段,帮助读者快速上手。
以下是 JavaFX 支持的一些效果及其对应代码片段。
ProgressBar progressBar = new ProgressBar();
Circle circle = new Circle(50);
circle.setStroke(Color.GRAY);
circle.setStrokeWidth(5);
progressBar.setPrefWidth(150);
progressBar.setPrefHeight(150);
StackPane stackPane = new StackPane();
stackPane.getChildren().addAll(circle, progressBar);
Scene scene = new Scene(stackPane, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
Group root = new Group();
Scene scene = new Scene(root, 200, 200);
Canvas canvas = new Canvas(200, 200);
GraphicsContext gc = canvas.getGraphicsContext2D();
root.getChildren().add(canvas);
KeyFrame keyFrame = new KeyFrame(Duration.seconds(1), event -> {
Calendar calendar = Calendar.getInstance();
int second = calendar.get(Calendar.SECOND);
int minute = calendar.get(Calendar.MINUTE);
int hour = calendar.get(Calendar.HOUR);
gc.clearRect(0, 0, 200, 200);
gc.setLineWidth(3);
// 画时针
gc.save();
gc.setStroke(Color.BLACK);
gc.translate(100, 100);
gc.rotate(hour * 30 + minute / 2.0);
gc.strokeLine(0, 0, 30, 0);
gc.restore();
// 画分针
gc.save();
gc.setStroke(Color.BLUE);
gc.translate(100, 100);
gc.rotate(minute * 6);
gc.strokeLine(0, 0, 50, 0);
gc.restore();
// 画秒针
gc.save();
gc.setStroke(Color.RED);
gc.translate(100, 100);
gc.rotate(second * 6);
gc.strokeLine(0, 0, 70, 0);
gc.restore();
});
Timeline timeline = new Timeline(keyFrame);
timeline.setCycleCount(Animation.INDEFINITE);
timeline.play();
primaryStage.setScene(scene);
primaryStage.show();
Rectangle rectangle = new Rectangle(100, 100, Color.BLUE);
RotateTransition rotateTransition = new RotateTransition(Duration.seconds(2), rectangle);
rotateTransition.setByAngle(360);
rotateTransition.setCycleCount(Animation.INDEFINITE);
rotateTransition.setAutoReverse(true);
rotateTransition.setInterpolator(Interpolator.LINEAR);
rotateTransition.play();
StackPane stackPane = new StackPane();
stackPane.getChildren().add(rectangle);
Scene scene = new Scene(stackPane, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
JavaFX 支持多种多样的效果,可以方便地创造出漂亮的界面。通过学习本文的例子,可以方便地在自己的程序中加入这些效果,提高用户体验。