java - 如何在 Java 中组织图形和绘图

标签 java swing graphics awt

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

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

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

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

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

我了解 OOP,但我不熟悉图形编程。我应该如何管理我想在 Canvas 上绘制的所有“数据”(确切地说是 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 类中,我必须管理所有这些杂散函数。

这只是为了绘制“一页”的东西。我无法想象必须切换 View 或游戏屏幕,我才能在页面上设置一堆动画。

我只是在寻找有关如何组织由 java 中的 paint() 方法绘制的代码的方向,这样我就不会疯狂地看着我的旧作品。任何教程、书籍(特别是如果它们是免费的),或者可能阅读的代码都将非常感激。

到目前为止,我发现的所有内容都是关于教授您“可以”使用 graphics/graphics2D/java 做什么,但我正在寻找专家建议的组织/样式技巧..

最佳答案

为您绘制的逻辑事物创建类,例如汽车。每个对象都会知道它需要知道的所有信息,比如位置、大小和颜色。如果让所有这些对象实现一个公共(public)接口(interface),您可以将它们全部放在一个列表中。当需要绘制它们时,您遍历列表并调用每个对象的绘制方法。

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

关于java - 如何在 Java 中组织图形和绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11993280/

相关文章:

java - Java中内存不足的通知

java - 比萨饼订购的复选框 ItemListener 逻辑

javascript - Paper.js 中的事件处理程序

java - 实现 KeyListener 代码,Java。无法识别输入

java - 如何从另一个组件的监听器为 JTable 设置表模型?

java - 如何解决boxlayout中的错位问题?

java - 为什么我的一个scrollPanel 可以工作而另一个却不能?

c++ - OpenGL:四边形似乎没有正确剔除

java - 高端 2D Java (SE) 图形库

java - 数字 .access$XXXX 代表什么?