用Java语言在Swing的窗体中安排一个画布,在画布上绘制一个色子,随机产生色子的值. 每次点击画布,随机投掷更换色子的值.写出完整代码
时间: 2024-01-22 14:18:38 浏览: 26
下面是用Java语言在Swing的窗体中安排一个画布,在画布上绘制一个色子,随机产生色子的值。每次点击画布,随机投掷更换色子的值的完整代码:
```java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DiceRoller extends JPanel {
private int diceValue = 1;
private final Random random = new Random();
public static void main(String[] args) {
JFrame frame = new JFrame("Dice Roller");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setContentPane(new DiceRoller());
frame.setVisible(true);
}
public DiceRoller() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
rollDice();
}
});
}
private void rollDice() {
diceValue = random.nextInt(6) + 1;
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.WHITE);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.BLACK);
g.drawRect(50, 50, 100, 100);
switch (diceValue) {
case 1:
drawDot(g, 75, 75);
break;
case 2:
drawDot(g, 60, 60);
drawDot(g, 90, 90);
break;
case 3:
drawDot(g, 60, 60);
drawDot(g, 75, 75);
drawDot(g, 90, 90);
break;
case 4:
drawDot(g, 60, 60);
drawDot(g, 90, 60);
drawDot(g, 60, 90);
drawDot(g, 90, 90);
break;
case 5:
drawDot(g, 60, 60);
drawDot(g, 90, 60);
drawDot(g, 75, 75);
drawDot(g, 60, 90);
drawDot(g, 90, 90);
break;
case 6:
drawDot(g, 60, 60);
drawDot(g, 90, 60);
drawDot(g, 60, 75);
drawDot(g, 90, 75);
drawDot(g, 60, 90);
drawDot(g, 90, 90);
break;
}
}
private void drawDot(Graphics g, int x, int y) {
g.fillOval(x, y, 10, 10);
}
}
```
这个程序使用了Java的Swing库来创建一个窗口,并在其中绘制了一个色子。每次点击画布,就会随机投掷色子,并更改其值。色子的值由1到6之间的随机数决定。程序中使用了Java的Random类来生成随机数,并使用了Java的MouseListener接口来实现鼠标点击事件的处理。在paintComponent()方法中,根据色子的值来绘制不同的点数。