2017-11-08 2 views
-1

私は描画アプリケーションを作成しています。ここで、ユーザーがボタンをクリックして描画する図形を選択すると(ノードなど)、シェイプはマウスがクリックされた場所に配置されます。 私は、ユーザーが画面上の2つの異なる「図形」をクリックしてそれらの間のリンクを作成できるようにしたいと思います。 component.contains(point)は動作しませんでした、と私は私は思うのでJava - 異なる場所でのマウスクリックを特定する方法

boolean contains(Point point) { 
    if((point.x >= centerX-radius) && (point.x <= centerX+radius) && 
      (point.y <= centerY+radius) && (point.y>=centerY-radius)) 
     return true; 
    else 
     return false; 
} 

: は、私が作成したすべてのノードが、私は、ノードを反復処理するfor-loopを持っている、と私は私のクラスのNODEに含まれている機能を作成しArrayList of Nodes.に追加されますクリックされた最初のノードを取得することはできますが、もう1つのノードを2つのクリックに特定することにはまだ苦労しています。

ご協力いただければ幸いです。

+0

これらの両方で、onblurイベント – Pradeep

+0

を使用できるので、jqueryまたはjavascriptを使用できません。Rectangle2D、Polygon、Path2DなどのShape派生オブジェクトを作成し、それらの '.contains(Point p ) 'メソッドを呼び出します。より良いヘルプを得るには、完全な[mcve]を投稿してください。 –

+0

2つの図形しかない場合は、このリンクを参照するとhttp://www.javacodex.com/More-Examples/2/6を参照することができます。さらに多くのキーを持つ場合は、不器用です – Pradeep

答えて

0

私は、そう

..あなたは、この場合、最初のクリックで選択したノードを維持するために役に立つかもしれない...クリックは、第1または第2のであるかどうかを知るために、追加の変数を維持する必要があると思います擬似コード:

Node selected; 

onClick() { 
    Node clicked = findNode(); 

    if (clicked == null || clicked == selected) { 
     selected = null; 
    } else 
    if (selected == null) { 
     selected = clicked; 
    } else { 
     createLine(selected, clicked); 
     selected = null; 
    } 
} 
-1

、マウス座標を取得するためのgetX()とのgetY()関数はonmouseClicked(私のMouseEvent)関数内で使用されています。

関連する問題