2010-01-07 35 views
3

生成的圖形事件。我有一個橢圓與java.awt.geom.Ellipse2D的幫助下現在如何從由Java2D的

,我想,只要用戶點擊上橢圓形,產生一個事件,使我可以聽取該事件並根據生成該事件的橢圓執行後續任務。

回答

3

這是一個簡單的example對象繪圖程序,演示點擊,拖動和多選。還考慮JGraph,這是一個更高級的圖形可視化庫。

+0

另請參閱此[示例](http://stackoverflow.com/a/11944233/230513)。 – trashgod 2012-11-07 22:11:12

1

如果沒有大量的手寫代碼(讓畫布或任何其他東西,聽鼠標事件,並計算自己是否點擊了橢圓),我不認爲這是可能的。

如果你想做更多這樣的考慮scenegraph。用這個橢圓本身就是一個對象,你可以註冊事件監聽器。


編輯作爲迴應評論:

場景圖:https://scenegraph.dev.java.net/ 谷歌更多的資源:場景圖的Java 是的。 Scenegraph是JavaFX東西的一部分,但與純Java(無FX)很好地配合使用

+0

請問您可以提供一個場景鏈接。我以前沒有聽說過。我可以在擺動GUI上繪製橢圓。 – 2010-01-07 13:45:01

1

我將假定這是一個問題,要求一種方法來聽取在某些Swing上繪製的橢圓上進行的鼠標點擊組件使用Graphics2D.draw

簡單的答案是,沒有辦法從繪製在表面上的圖形生成鼠標事件。

然而,這裏是另一種方法:

  1. 商店從中橢圓從一個List繪製的Ellipse2D對象。在用戶點擊的Swing組件上註冊一個MouseListener
  2. 根據從鼠標點擊產生的MouseEvent S,確定在被點擊鼠標(使用MouseEvent.getPoint)的位置,並檢查是否發生了任何包含在前述ListEllipse2D S的鼠標點擊,使用Ellipse2D.contains方法。