1

我一直在使用 Java 图形编程,我觉得我理解它是如何工作的。

我不喜欢/尚未掌握的一件事是如何管理在面板上绘制大量图形(形状、图像等)。

我目前正在阅读的所有书籍/教程都已将您想要完成的所有绘图放入 paintCompnents/paint 函数中。前任,

public void paint(Graphics g){
    //do stuff here....
}

事情是我有太多想要画的东西,以至于将一堆代码放在一个函数中很难看,难以阅读,并且难以管理/编辑......

我了解 OOP,但我是图形编程的新手。我应该如何管理我想在画布上绘制的所有“数据”(确切地说是 JPanel)。我目前正在调用 paint(..) 方法中的函数。前任,

public void paint(Graphics g){
    drawCars(g, x,y,wid,len,etc,etc);
}

然后...

drawCars(Graphics g, int x, int y, int wid, etc etc){
    g.drawSomething(x,y,wid,len,)
    g.drawAnotherThing(x+90,y+60,etc, etc);
}

然后问题出在我的 JPanel 类中,我必须管理所有这些杂散功能。

这仅用于绘制“一页”的东西..我无法想象必须切换视图或游戏屏幕,在那里我可以在页面上制作一堆动画..

我只是在寻找有关如何在 java 中组织由 paint() 方法绘制的代码的方向,所以我不会疯狂地看着我的旧工作。任何教程、书籍(尤其是免费的)或好的代码都将非常感激。

到目前为止,我发现的一切都是关于教你“可以”用图形/graphics2D/java 做什么,但我正在寻找专家建议的组织/风格提示。

4

2 回答 2

5

为您绘制的逻辑事物(例如汽车)开设课程。每个对象都会知道它需要知道的所有内容,以便像位置、大小和颜色一样进行自我绘制。如果你让所有这些对象实现一个通用接口,你就可以把它们放在一个列表中。当需要绘制它们时,您遍历列表并调用每个对象的绘制方法。

除了该文档之外,绘图代码也很好,因此对于每个绘图语句,都可以清楚地知道它是实际绘图的哪一部分。

于 2012-08-16T18:42:04.177 回答
0

把它洒了,在 g 中调用一个可以绘制某个部分的方法。如果你画的是房子而不是drawRect,等等

drawRoof(g);
drawDoor(g);

然后在这些你有像drawRect这样的凌乱的东西......

这有帮助吗?我可能会误解您在寻找什么...

于 2012-08-16T18:41:49.277 回答