Java 如何使用paintComponent()而不调用多个;绘制();方法?
我是java新手,我正在尝试创建一个“游戏” 在我的游戏中,我的主类中有paintComponent方法:Java 如何使用paintComponent()而不调用多个;绘制();方法?,java,swing,graphics,awt,paintcomponent,Java,Swing,Graphics,Awt,Paintcomponent,我是java新手,我正在尝试创建一个“游戏” 在我的游戏中,我的主类中有paintComponent方法: public void paintComponent(Graphics g) { super.paintComponent(g); setBackground(new Color(120,120,255)); BackgroundObject.drawGrass(g,385); BackgroundObject.drawRoad(g,420); Ba
public void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(new Color(120,120,255));
BackgroundObject.drawGrass(g,385);
BackgroundObject.drawRoad(g,420);
BackgroundObject.drawSun(g,-20,-20);
myCar.draw(g);
debugger.draw(g);
}
问题是,我要绘制的每个对象都必须放在paintComponent方法下(比如当我要绘制汽车时,我必须将我的car.draw()放在paintComponent下)
有没有办法做到这一点
public void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(new Color(120,120,255));
visualComponents.draw(g);
GUI.draw(g);
}
调用visualComponents.draw()时,任何类都可以告诉visualComponent类绘制对象
例:
我的汽车类告诉visualComponent在visualComponent.draw(g)时绘制车辆;被称为
总而言之,我基本上是在询问大多数人如何在程序中使用paintComponent的结构
我一直在谷歌搜索,但找不到答案
如果我的问题让您困惑,请告诉我。您可以将元素添加到集合中,然后迭代集合并在循环中绘制每个元素。这可以在几行代码内绘制100个对象 这将迭代
区域
实例的集合,并使用以下方法绘制它们:
for (Area obstacle : obstacles) {
if (doAreasCollide(obstacle, player)) {
g.setColor(Color.RED);
} else {
g.setColor(Color.GREEN);
}
g.fill(obstacle);
}
3个绿色和1个红色障碍物在集合中,而球(黄色小圆圈)是分开绘制的。谢谢,我会研究一下。我只需要标记为接受即可。很高兴你把它整理好了。:)对可以让对象自己绘制。有关解释和说明,请参阅本文。