2011-12-08 12 views
0

私のプログラムはこのようなもので、フレームの一部をクリックし、JOptionPaneが出てきて入力を求めます。たとえば、APPLESと入力します。次に、フレームの別の部分をクリックします。今回はORANGESで入力します。drawStringでフレームに文字列を表示していますか?

ここにキャッチがあります。クリックしたポイント、たとえばAPPLESのポイントにカーソルを合わせると、drawStringの形式でAPPLESがフレームに表示されます。 ORANGESポイントにカーソルを合わせると、ORANGESが表示されます。

私は、ホバー上のフレームに異なるストリングを表示したいと思います。誰でもアイデアはありますか?前もって感謝します! :)

注:mouseListenersとmouseMotionListenersを気にする必要はありません。私の唯一の問題は、drawStringでさまざまな文字列を表示することです:)または他の方法をお勧めします。

+0

'paint(...)'をオーバーライドしていると仮定すると、文字列を描画するかどうかをマウス座標に基づいて判断するのはなぜですか? – Thomas

+0

おっと、申し訳ありません。どのように座標を文字列にマッチさせるのか分かりません – alicedimarco

+0

'MouseMotionListener'を実装して 'mouseMotionListener'に登録して' mouseMoved() 'に登録するのに問題があります – korifey

答えて

1

私はあなたの問題を正しく理解しています。しかし、フォームクラスのpaintComponent(Graphics g)メソッドをオーバーライドする必要があります。このメソッドでは、g.drawString(yourString)を呼び出します。方法。あなたの "リンゴポイント"の上にマウスカーソルを置くと、 "APPLES"に "yourString"を設定し、フレームクラスのメソッドrepaint()を呼び出すだけです。上に戻る

+0

Um。私は文字列を初期化したくありません。任意の文字列を指定できます。たとえば、オプションペインに任意の単語を入力すると、ポイントに対応し、入力した単語を表示する必要があります。 – alicedimarco

+0

あなたはPoint-Stringペアを格納するために何らかの種類のデータ構造(ArrayList、HashMapなど)を使用する必要があります。マウスを動かすときは、Pointの適切な文字列を探し、yourStringを見つかった文字列。 – Kousalik

+0

私はすでに実際にHashMapを実装していますが、それはすべての点Dに対して同じ文字列を表示していることです。 – alicedimarco

関連する問題