Swing paint程序 - 如何处理选择?

时间:2017-11-04 01:37:04

标签: java swing graphics paint graphics2d

我试图使用swing制作绘画程序。我有几个用户可以绘制的形状,包括椭圆,线条和矩形。可以使用各种笔划(线条粗细)绘制(使用graphics2d)形状,可以填充或填充。

我试图实现一项功能,以便用户可以用鼠标右键单击一个形状并拖动它来移动它。

我目前的策略是轮询形状数组是相反的顺序(意味着在多个形状的情况下,最近添加的形状被选中)。

每个形状实现都有一个名为isSelected(int x, int y)的方法。我需要弄清楚如何确定一个点是否落在形状上。一个挑战是在内部单击时不应选择未填充的形状(如椭圆形),但如果填充则应选择。此外,选择应响应中风的厚度。也就是说,如果使用较粗的笔划,则可以通过单击外部区域来选择一条线,而不仅仅是线的正中心。

我怎么能实现这个呢?

1 个答案:

答案 0 :(得分:1)

  

我正在存储一个自定义类型的数组,该数组通过此API实现2d形状

然后你可以使用:

取决于您拥有的信息以及您想要检查的内容