红色立体小球掉落Java代码
时间: 2024-08-13 11:07:51 浏览: 41
在Java中,创建一个模拟红色立体小球从特定高度自由落体的简单动画代码可能涉及到使用Swing或JavaFX库来绘制图形。由于ChatGPT不直接支持图形用户界面编程,我将提供一个基本的概念,你可以根据这个概念在自己的环境中实现:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class RedSphericalBallDrop {
private JFrame frame;
private JLabel ballLabel;
private int ballYPosition = 0;
private final int BALL_RADIUS = 10;
private final int STARTING_HEIGHT = 200;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
RedSphericalBallDrop window = new RedSphericalBallDrop();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public RedSphericalBallDrop() {
initialize();
}
private void initialize() {
frame = new JFrame("Red Ball Drop");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
ballLabel = new JLabel();
ballLabel.setBounds(BALL_RADIUS, ballYPosition, 2 * BALL_RADIUS, 2 * BALL_RADIUS);
ballLabel.setBackground(Color.RED);
ballLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
frame.add(ballLabel);
frame.pack();
ActionListener fallListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ballYPosition -= 5; // 假设每步下降5像素
if (ballYPosition <= 0) {
ballYPosition = STARTING_HEIGHT; // 当球落到地面时,重置位置
}
ballLabel.setLocation(BALL_RADIUS, ballYPosition);
}
};
Timer timer = new Timer(100, fallListener); // 每隔100毫秒执行一次动作
timer.start();
}
}
```
这段代码创建了一个包含一个红色球体的窗口,球体会从初始高度200像素处向下自由落下。`Timer`用于定时改变球的位置,每100毫秒下降5像素。当球下落到屏幕底部时,它会回到初始高度。