java.awt.geom.Ellipse2Dを使用して楕円を作成しました
ここで、ユーザーがその楕円をクリックするたびにイベントが生成されるようにして、そのイベントをリッスンし、そのイベントを生成した楕円に基づいて後続のタスクを実行できるようにします。
これは、クリック、ドラッグ、および複数選択を示すオブジェクト描画プログラムの簡単な例です。また、グラフを視覚化するためのはるかに高度なライブラリであるJGraphについても検討してください。
これは、手作業でコーディングされたものがたくさんなければ不可能だと思います(キャンバスなどを許可し、マウスイベントを聞いて、楕円がクリックされたかどうかを自分で計算します)。
そのようなことをもっとしたい場合は、シーングラフを検討してください。これにより、楕円はそれ自体がオブジェクトになり、イベントリスナーを登録できます。
コメントへの応答として編集:
シーングラフ: https://scenegraph.dev.java.net/ google for more resources:scenegraphjavaそしてはい。シーングラフはJavaFXのものの一部ではありませんが、純粋なJava(FXなし)でうまく機能します
これは、を使用してSwingコンポーネントに描かれた楕円上で行われるマウスクリックを聞く方法を尋ねる質問であると想定しますGraphics2D.draw
。
簡単な答えは、サーフェスに描画されたグラフィックからマウスイベントを生成する方法がないということです。
ただし、別のアプローチは次のとおりです。
Ellipse2D
楕円が描画されたオブジェクトをに格納しますList
。MouseListener
ユーザーがクリックするSwingコンポーネントにを登録します。MouseEvent
sから、(を使用して)マウスがクリックされた場所を特定し、メソッドを使用して、前述のに含まれるのMouseEvent.getPoint
いずれかでマウスクリックが発生したかどうかを確認します。Ellipse2D
List
Ellipse2D.contains