我正在尝试在屏幕上创建100个随机矩形,但它只在左上角绘制1个。为什么这样做以及如何解决?它应该使用随机x / y变量重复绘制矩形过程100次,但它不会。
public class MazeGame extends JPanel {
int x;
int y;
boolean Loc = false;
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawRect(x, y, 10, 10);
this.setBackground(Color.RED);
}
public void makeMaze() {
for(int u = 1; u < 100; u++) {
while(Loc == false) {
int x = (int) (Math.random() * 100);
int y = (int) (Math.random() * 100);
System.out.println("x " + x + " " + "y " + y);
repaint();
Loc = true;
}
Loc = false;
}
}
public void gui() {
MazeGame game = new MazeGame();
JFrame frame = new JFrame();
frame.setSize(600, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(game);
game.makeMaze();
frame.setVisible(true);
}
public static void main(String[] args) {
MazeGame game = new MazeGame();
game.gui();
}
}
答案 0 :(得分:4)
你永远不会设置x和y。在循环内部,您定义了一个局部x和y变量,因此永远不会设置实例变量。删除局部变量声明。