3

java.awt.geom.Ellipse2Dを使用して楕円を作成しました

ここで、ユーザーがその楕円をクリックするたびにイベントが生成されるようにして、そのイベントをリッスンし、そのイベントを生成した楕円に基づいて後続のタスクを実行できるようにします。

4

3 に答える 3

3

これは、クリック、ドラッグ、および複数選択を示すオブジェクト描画プログラムの簡単な例です。また、グラフを視覚化するためのはるかに高度なライブラリであるJGraphについても検討してください。

于 2010-01-07T16:29:49.097 に答える
1

これは、手作業でコーディングされたものがたくさんなければ不可能だと思います(キャンバスなどを許可し、マウスイベントを聞いて、楕円がクリックされたかどうかを自分で計算します)。

そのようなことをもっとしたい場合は、シーングラフを検討してください。これにより、楕円はそれ自体がオブジェクトになり、イベントリスナーを登録できます。


コメントへの応答として編集:

シーングラフ: https://scenegraph.dev.java.net/ google for more resources:scenegraphjavaそしてはい。シーングラフはJavaFXのものの一部ではありませんが、純粋なJava(FXなし)でうまく機能します

于 2010-01-07T13:43:03.957 に答える
1

これは、を使用してSwingコンポーネントに描かれた楕円上で行われるマウスクリックを聞く方法を尋ねる質問であると想定しますGraphics2D.draw

簡単な答えは、サーフェスに描画されたグラフィックからマウスイベントを生成する方法がないということです。

ただし、別のアプローチは次のとおりです。

  1. Ellipse2D楕円が描画されたオブジェクトをに格納しますList
  2. MouseListenerユーザーがクリックするSwingコンポーネントにを登録します。
  3. マウスクリックから生成されたMouseEventsから、(を使用して)マウスがクリックされた場所を特定し、メソッドを使用して、前述のに含まれるのMouseEvent.getPointいずれかでマウスクリックが発生したかどうかを確認します。Ellipse2DListEllipse2D.contains
于 2010-01-07T13:43:18.730 に答える