我試圖製作一個小型版的老虎機。我正在使用五個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 *就足夠了。 '{'之後或'}'之前的空行通常也是多餘的。 –
固定代碼格式化,編輯爲同行審查 –