在java程序中运行出跳动爱心
时间: 2024-09-29 21:05:00 浏览: 28
在Java程序中创建一个跳动爱心的效果通常需要动画技术和图形界面处理。你可以使用Swing或JavaFX库来实现。这里是一个简单的示例,使用JavaFX创建一个静态爱心形状,并通过定时器让它看起来像是在"跳动"。请注意,实际的"跳动"效果可能会更复杂,涉及到位置变化、透明度调整等。
```java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
import javafx.util.Duration;
public class FlutteringHeart extends Application {
private Circle heartCircle;
private Rectangle baseRectangle;
@Override
public void start(Stage primaryStage) {
// 创建舞台
primaryStage.setTitle("Jumping Heart");
// 设置基础背景
StackPane root = new StackPane();
root.setStyle("-fx-background-color: #ECECEC;");
// 创建爱心形状
heartCircle = new Circle(50);
heartCircle.setFill(Color.RED);
heartCircle.setStroke(Color.WHITE);
heartCircle.setTranslateX(-heartCircle.getRadius());
heartCircle.setRotate(45);
// 创建爱心底座
baseRectangle = new Rectangle(heartCircle.getRadius() * 2, heartCircle.getRadius() * 2);
baseRectangle.setFill(Color.TRANSPARENT);
baseRectangle.setStroke(Color.WHITE);
baseRectangle.setTranslateY(-baseRectangle.getHeight());
// 添加到场景中并设置动画
root.getChildren().addAll(heartCircle, baseRectangle);
primaryStage.setScene(new Scene(root, 200, 200));
// 每次跳动改变爱心的位置和旋转
primaryStage.setOnMouseClicked(e -> animateHeart());
// 定时器模拟跳动
animateHeart();
}
private void animateHeart() {
heartCircle.setTranslateX((double)(Math.random() * 200 - 100));
heartCircle.setRotate(heartCircle.getRotate() + Math.PI / 60);
Platform.runLater(() -> {
if (heartCircle.getX() > stage.getWidth()) {
heartCircle.setTranslateX(-heartCircle.getRadius());
}
if (heartCircle.getX() < -heartCircle.getRadius()) {
heartCircle.setTranslateX(stage.getWidth() + heartCircle.getRadius());
}
animateHeart();
}, Duration.millis(50)); // 设置跳动间隔
}
public static void main(String[] args) {
launch(args);
}
}
```
阅读全文