获取ArrayList中的最新形状以在其他形状上绘制 - Java

时间:2017-03-31 14:19:03

标签: java swing arraylist shape paintcomponent

由于这是学校作业,我不想要一个完整的解决方案,而是在正确的方向上推动我应该看的东西(因此没有代码)。

我有一个处理鼠标输入的类。从该类我检查用户是否在形状上按住鼠标按钮,然后将该形状设置为活动形状。当用户拖动形状时,形状随之移动并相应地改变位置。释放鼠标后,selectedShape将设置为null,并且正在重新绘制面板。

我希望selectedShape位于所有其他形状之上,因此如果选定的形状被拖过任何其他形状,那么它就在前面。

根据我的理解,repaint()方法只是将它们重新绘制在ArrayList中,并且我需要使用另一种方法在顶部绘制该形状(从视觉上讲)。

我将在哪里添加此功能?在MouseHandler类?

包含的相关课程: MyShape - 家长班  三角形,正方形,圆形 - Child - 有自己的draw(g)方法和setPosition MouseHandler - 鼠标移动并调用每个形状以设置新位置。 MyShapeHandler - 在列表中添加/删除形状 面板 - 创建形状实例并使用MyShapeHandler帮助方法addShape添加到ArrayList。使用drawComponent(g)在ArrayList中绘制每个形状。 窗口 - 添加面板的JFrame

1 个答案:

答案 0 :(得分:0)

您可以尝试重新排列列表,以便所需的形状是第一个/最后一个。尝试并查看列表中的形状索引是否与屏幕正面或背面的位置相对应。