Java 如何将形状视为图形2D

Java 如何将形状视为图形2D,java,graphics2d,shapes,Java,Graphics2d,Shapes,我正在做一个java项目,我有一个形状集合,我需要给每个形状赋予不同的颜色。 例如,在集合中,我有正方形和矩形,然后我需要用红色绘制正方形,用蓝色绘制矩形。我正在考虑将一个形状设置为graphics2D,但我不能。形状的概念和graphics2D的概念是完全正交的——你不能将形状视为graphics2D对象,因为形状是点的集合,graphics2D对象就像画笔一样画点。。。他们就是不开玩笑。此外,图形对象可以在JVM的一时兴起下交换,而图形对象则可以在整个程序中保持不变,这完全是您无法控制的 解

我正在做一个java项目,我有一个形状集合,我需要给每个形状赋予不同的颜色。
例如,在集合中,我有正方形和矩形,然后我需要用红色绘制正方形,用蓝色绘制矩形。我正在考虑将一个形状设置为graphics2D,但我不能。

形状的概念和graphics2D的概念是完全正交的——你不能将形状视为graphics2D对象,因为形状是点的集合,graphics2D对象就像画笔一样画点。。。他们就是不开玩笑。此外,图形对象可以在JVM的一时兴起下交换,而图形对象则可以在整个程序中保持不变,这完全是您无法控制的

解决方法:彻底重新思考你在做什么,但不要对这棵树吠叫,因为它只会导致痛苦。如果您需要更多帮助,如我们之前所建议的,请发布一个


此外,如果要将形状与颜色连接,则考虑创建一个包装类,该类将形状对象和颜色对象放在一起。另一种选择是使用

地图

我们确实需要一个您尝试过并遇到问题的特定方法来提供有用的建议如果您需要的是更一般的建议,那么请搜索图形教程。例如,如前一个问题中所述,将形状和颜色细节包装在代理对象中,这允许您携带集中对象中所需的信息。或者,您可以使用与颜色关联的形状键控的哈希映射,并在绘制时查找此信息。@vilal_uu我还没有看到您尝试创建sscce。既然你没有什么可失去的,为什么不试试呢。在你这么做之前,我担心你可能会继续得到让你失望的答案,以及让我们失望的问题。我认为这就是问题所在,如果你没有代码开始,那么你想要的是一个教程,而不是你编写的应该作为SSCCE运行的堆栈溢出代码,问题在于你尝试一些东西,找到一个特定的问题,询问具体问题。“教我这整个技巧”这样的问题并不适合堆栈溢出(但是有很多很好的教程)@RichardTingle。无论何时尝试实现新的或具有挑战性的内容,在尝试将其添加到更大的程序之前,您应该先在一个小的可运行程序中进行测试。OP确实有一个SSCCE,但他们出于某种原因删除了帖子