利用Java编写一个模拟龟兔赛跑的窗体应用程序,绘制不同颜色的两个圆分别代表乌龟和兔子,设置一个按钮,单击按键后,龟兔开始赛跑。
时间: 2023-07-16 09:13:42 浏览: 135
一个用Java语言编写的龟兔赛跑的程序
以下是一个简单的模拟龟兔赛跑的Java窗体应用程序,你可以根据需要进行修改和优化:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TurtleRabbitRace extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JPanel panel;
private JButton startButton;
private JLabel turtleLabel, rabbitLabel;
private int turtleX, rabbitX;
public TurtleRabbitRace() {
setTitle("龟兔赛跑");
setSize(500, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
panel.setLayout(null);
turtleLabel = new JLabel(new ImageIcon("turtle.png"));
turtleLabel.setSize(50, 50);
turtleLabel.setLocation(10, 50);
panel.add(turtleLabel);
rabbitLabel = new JLabel(new ImageIcon("rabbit.png"));
rabbitLabel.setSize(50, 50);
rabbitLabel.setLocation(10, 100);
panel.add(rabbitLabel);
startButton = new JButton("开始赛跑");
startButton.setSize(100, 30);
startButton.setLocation(200, 20);
startButton.addActionListener(this);
panel.add(startButton);
getContentPane().add(panel);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == startButton) {
turtleX = 0;
rabbitX = 0;
while (turtleX < 450 && rabbitX < 450) {
turtleX += (int) (Math.random() * 10);
rabbitX += (int) (Math.random() * 20);
turtleLabel.setLocation(turtleX, 50);
rabbitLabel.setLocation(rabbitX, 100);
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
if (turtleX >= 450 && rabbitX >= 450) {
JOptionPane.showMessageDialog(panel, "比赛结束,平局!");
} else if (turtleX >= 450) {
JOptionPane.showMessageDialog(panel, "比赛结束,乌龟获胜!");
} else {
JOptionPane.showMessageDialog(panel, "比赛结束,兔子获胜!");
}
}
}
public static void main(String[] args) {
new TurtleRabbitRace();
}
}
```
在这个程序中,我们创建了一个窗体,包含了一个面板、两个标签(分别代表乌龟和兔子)、一个按钮,以及一些其他的组件。当用户单击“开始赛跑”按钮时,通过一个while循环模拟龟兔赛跑的过程。在每一次循环中,我们随机生成一个乌龟和兔子的前进距离,并更新它们的位置。同时,通过调用Thread.sleep()方法来暂停一段时间,以便用户能够看到它们的移动。当其中一个跑到终点时,我们通过JOptionPane.showMessageDialog()方法来显示比赛结果。
阅读全文