我试图制作一个小型版的老虎机。我正在使用五个JPanel
s。 JPanel
中的四个将保持像正方形,圆形和椭圆形的随机形状。如果所有四个JPanel
都显示正方形,则第五个JPanel
应该显示JackPot
,如果显示任何其他组合,则第五个JPanel
应该再试一次。我遇到的问题是当用户赢或输时第五个JPanel
显示一条消息。我能够在JPanel
上随机绘制形状,但是我遇到的问题是使绘制方法在特定的JPanel
中绘制。当我运行代码时,每个JPanel
上都会出现一个随机形状,但我只希望这些形状出现在四个JPanel
之间,而不是全部五个。如何在Java中的不同JPanel中绘制随机形状
import javax.swing.*;
import java.awt.*;
import java.util.Random;
public class JackPot extends JPanel {
public JackPot(Color backColor) {
setBackground(backColor);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Random gen = new Random();
int a = gen.nextInt(10);
if (a <= 3) {
g.drawOval(20,20,25,25);
} else if (a > 3 && a <= 6) {
g.drawRect(20,20,25,10);
} else {
g.drawOval(20,20,20,10);
}
}
public static void main(String[] args) {
JFrame GUI = new JFrame();
GUI.setTitle("JackPot");
GUI.setSize(500, 400);
Container pane = GUI.getContentPane();
pane.setLayout(new GridLayout(5, 1));
JackPot panel = new JackPot(Color.red);
JackPot panel2 = new JackPot(Color.white);
JackPot panel3 = new JackPot(Color.yellow);
JackPot panel4 = new JackPot(Color.green);
JackPot panel5 = new JackPot(Color.pink);
pane.add(panel);
pane.add(panel2);
pane.add(panel3);
pane.add(panel4);
pane.add(panel5);
GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GUI.setVisible(true);
}
}
1)对代码块使用一致的逻辑缩进。代码的缩进旨在帮助人们理解程序流程。 2)源代码中的单个空白行是* always *就足够了。 '{'之后或'}'之前的空行通常也是多余的。 –
固定代码格式化,编辑为同行审查 –