gpt4 book ai didi

java - 如何在Java中初始化图形?

转载 作者:行者123 更新时间:2023-12-01 04:13:23 29 4
gpt4 key购买 nike

我有一些这样的代码:

public void paintComponent(Graphics graphics){
graphics.setColor(Color.WHITE);
for (GameObject object : GameArea.objects){
graphics.fillRect(object.position.x, object.position.y,object.width, object.height);
}
graphics.setColor(Color.BLUE);
graphics.fillRect(GameArea.square.position.x,GameArea.square.position.y,GameArea.square.width, GameArea.square.height);
for(GameObject object2 : GameArea.objects){
graphics.fillRect(object2.position.x, object2.position.y,object2.width, object.height);
}
}

它位于一个名为 FieldPanel 的类中。我从 MainGame 类中调用它,如下所示:

Timer t = new Timer(50, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
//The following line does not work:
fieldPanel.paintComponent(Graphics g);
}
});

但是,不起作用的线路给我带来了问题。如何创建一个新的图形对象以传递到另一个类的方法中?而且,当我创建它时,它应该具有哪些属性等?我不完全确定 Graphics 类的作用,解释会很有帮助。

最佳答案

自动调用

paintComponent(Graphics g) 方法。你不能在任何地方调用它。但如果你想绘制新的图形,你可以像这样使用 fieldPanel 中的 repaint() 方法。

fieldPanel

public void draw(){
GameArea.add(new GameObject());
repaint();
}

MainGame

  Timer t = new Timer(50, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
fieldPanel.draw();
}
});

关于java - 如何在Java中初始化图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19682491/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com