我将使用Java构建绘图程序(类似于MS Paint)。我已经能够使用Swing lib在JFrame上绘制基本形状,但它们是静态的,我不能对它们做任何事情。因此,我想使每个形状成为一个对象,它将存储我们需要操作的所有信息,如尺寸,旋转,改变颜色,导出到jpeg图像等。
所以我想创建一个带有子类Rectangle,Oval等的Image类。每个子类都有一个Points(x,y)数组,这样我们就可以操作每个点。因此,如果我想要删除部分形状,我只需删除某些点。移动形状只会改变点的位置。这是计划,但我不知道它有多可能。
在我深入编写代码之前,有没有人有这类程序的经验给我一些建议?
答案 0 :(得分:0)
如果调用repaint();
方法,则可以将x和y设置为先前放入数组的整数。然后,一旦拖动选区的锚点以适合选择的x和y,就会更改这些整数。但话又说回来,您需要知道如何拖动对象。如果你添加了一个鼠标监听器,并且感觉到x和y是否在你的锚中(你可以使用(the clicked x) > (anchor X) && (the clicked x < ((anchor X) + anchor width)
之类的不等式,对于y也是如此。然后当鼠标移动时,它会移动到鼠标x和鼠标y。然后等待鼠标完成拖动,然后将选中的图像移动到存储的鼠标x和y。中提琴!