代码之家  ›  专栏  ›  技术社区  ›  Bassinator

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

  •  0
  • Bassinator  · 技术社区  · 7 年前

    我正在尝试使用swing制作一个绘制程序。我有几个用户可以绘制的形状,包括椭圆、直线和矩形。形状可以用各种笔划(线厚度)绘制(使用图形2D),可以填充或取消填充。

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

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

    isSelected(int x, int y) 。我需要找出如何确定一个点是否落在形状上。一个挑战是,在内部单击时不应选择未填充的形状(如椭圆形),而应在填充时选择。此外,选择应响应笔划的厚度。也就是说,如果线条使用较厚的笔划,则应通过单击外部区域来选择线条,而不仅仅是线条的精确中心。

    1 回复  |  直到 7 年前
        1
  •  1
  •   MadProgrammer    7 年前