[英]Swing paint program - How to handle selection?
我正在嘗試使用swing創建繪畫程序。 我有幾種用戶可以繪制的形狀,包括橢圓,直線和矩形。 可以使用各種筆划(線條粗細)繪制(使用graphics2d)形狀,並且可以填充或不填充形狀。
我正在嘗試實現一項功能,以便用戶可以用鼠標右鍵單擊形狀並將其拖動以移動它。
我當前的策略是按相反順序輪詢形狀數組(這意味着在選擇多個形狀的情況下,將選擇最近添加的形狀)。
每個形狀實現都有一個稱為isSelected(int x, int y)
。 我需要弄清楚如何確定一個點是否落在形狀上。 一個挑戰是,在內部單擊時,不應選擇未填充的形狀(例如橢圓形),而在填充時應選擇未填充的形狀。 同樣,選擇應響應筆划的粗細。 也就是說,如果線條使用的是較粗的筆划,而不僅僅是線條的確切中心,則可以通過單擊外部區域來選擇線條。
我到底該如何實施呢?
我正在存儲自定義類型的數組,該數組通過此API實現2D形狀
然后,您可以使用:
Shape#contains(double, double)
Shape#contains(double, double, double, double)
Shape#contains(Point2D)
Shape#contains(Rectangle2D)
根據您所擁有的信息以及您要檢查的內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.