我试图让它成为两个正方形出现在JFrame上,但只有我在主方法中出现的最后一个而另一个没出现。一直试图弄清楚这个约3个小时,想要粉碎我的电脑屏幕。任何帮助都是极好的。谢谢。
C
.....
public class Main extends JFrame{
static Main main;
static Enemy square, square2;
Render render;
Main(){
render = new Render();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,500);
setResizable(false);
add(render);
}
public void render(Graphics2D g){
square.render(g);
square2.render(g);
}
public static void main(String [] args){
main = new Main();
square2 = new Square(300,50);
square = new Square(50,50);
}
}
...
public class Render extends JPanel {
public void paintComponent(Graphics g){
super.paintComponent(g);
Main.main.render((Graphics2D)g);
}
}
.......
public class Enemy {
public static int x,y;
Enemy(int x, int y){
this.x = x;
this.y = y;
}
public void render(Graphics2D g){
}
}
答案 0 :(得分:2)
静态变量属于类而不是对象。 对Enemy位置使用静态变量意味着如果你创建Enemy类的任何实例,它们将共享相同的静态x,y。你有2个方格,但它们总是在彼此之上。
将public static int x, y;
更改为public int x, y;
可以解决您的问题。