Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正确的图形参考方法?_Java_Oop_Graphics - Fatal编程技术网

Java 正确的图形参考方法?

Java 正确的图形参考方法?,java,oop,graphics,Java,Oop,Graphics,将(图形g)之外的其他参数传递给将对象绘制到gui的方法是一个坏主意吗?例如,如果您有: A a = new A() paintComponent(Graphics g) { a.draw(g, something); } public class A { draw(Graphics g, Something something) { g.drawImage(something.getSomething(somethingElse), 0, 0, null); } }

将(图形g)之外的其他参数传递给将对象绘制到gui的方法是一个坏主意吗?例如,如果您有:

A a = new A()

paintComponent(Graphics g) {
  a.draw(g, something);
}

public class A {
  draw(Graphics g, Something something) {
    g.drawImage(something.getSomething(somethingElse), 0, 0, null);
  }
}

这样合适吗?不知道为什么,但我觉得处理图形的方法应该简化为只处理图形,在这种情况下,“draw”方法必须放在“Something”类中,以便它可以直接引用必要的内容作为字段或其他内容,而不需要额外的参数。

如果“某物”可以是一个属性或一组属性,但如果它与对象没有任何关系,则可能没有更好的方法来解决此问题。

这取决于您尝试归档的内容。通常在绘制时,我会设置上下文/支持绘制方法,我希望反复调用这些方法来构建最终图像(思考层),这允许我根据需要添加/删除层并隔离每个部分

例如,绘制高光。你通常不太关心外部环境,但需要知道如何应用它们

我还使用了
画师
,比如SwingX项目中的画师

只是我对这个问题的看法