2009-09-11 56 views
1

我想创建许多连接小圆形状的直线。那么我想在程序中改变线条的颜色和宽度。我正在考虑使用Canvas来做到这一点,但似乎没有办法访问绘制在画布上的个别形状,以便在绘制后更改它们的属性。什么将是一个简单的方法来实现呢?java以编程方式更改形状的属性

回答

2

首先,什么版本的Java和哪个UI工具包? AWT的帆布很愚蠢,甚至不会“记住”你画的东西;当你最小化和恢复窗口时,它会发送一个paint()事件,因为它想要重新绘制。

最简单的方法(如果您使用的是AWT并粘贴到画布上),应该有一个您的形状列表(一个列表中的所有或一个圈子和一个线条,或任何你喜欢的),并让你的油漆方法将其全部绘制出来。然后更新列表中的对象。完成更新后,请在您的画布上拨打repaint(),它会再次为您拨打paint()

0

如果您使用Graphics和Graphics2D函数(如drawRect,drawPolygon,DrawOval等),则不会将图形绘制到Canvas上。绘制后,它们不再以形状存在。你只是有一个填充像素的图像。正如mihi所说,你可能需要跟踪你想要绘制的形状,然后在图像发生变化时重新产生图像。也许你也可以通过在背景颜色上绘制并重绘变化后的形状来“解开”你想要改变的形状。

相关问题