java以编程方式更改形状的属性

时间:2009-09-11 17:16:12

标签: java graphics

我想创建一些连接小圆形的直线。然后我想从程序中更改线条的颜色和宽度。我正在考虑使用Canvas来做这件事,但似乎没有办法访问画布上绘制的各个形状,以便在绘制后更改其属性。实现这一目标的简单方法是什么?

2 个答案:

答案 0 :(得分:2)

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

最简单的方法(如果你使用的是AWT并坚持使用Canvas)就是拥有一个你的形状列表(一个列表为全部,一个用于圆圈,一个用于行,或者你喜欢的任何一个)并制作你的绘画方法画出所有这些。然后更新列表中的对象。完成更新后,请在画布上致电repaint(),然后再次为您致电paint()

答案 1 :(得分:0)

如果您使用的是Graphics和Graphics2D函数(如drawRect,drawPolygon,drawOval等),则不会在Canvas上绘制形状。一旦绘制它们,它们就不再作为形状存在。你只有一个带有填充像素的图像。

正如mihi所说,你可能需要跟踪你想要绘制的形状,然后重新生成你的图像。也许您也可以通过在背景颜色上绘制并重新绘制更改后的形状来“重新涂抹”您尝试更改的形状。