2012-03-26 8 views
1

289の長方形(17x17)の大きなグリッドがあり、289の異なるイベントメソッドを作成せずにクリックすると、それぞれの色を変更する方法が必要です。 、私はそれぞれ矩形及びその色のための位置の大きなArrayListの作成以外開始する必要が任意のアイデアを持っていない大量の四角形の色を変更するにはどうすればよいですか?

if(y%2==0){ 
    if(x%2==0) 
     g2.setColor(Color.WHITE) 
    else 
     g2.setColor(Color.BLUE) 
}else{ 
    if(x%2!=0) 
     g2.setColor(Color.WHITE) 
    else 
     g2.setColor(Color.RED) 
} 

(例えば、{{0,0:retanglesはパターンに基づいて着色されていますColor.WHITE}、{x、0、Color.BLUE} ...など};)。それぞれのパラメータを使って長方形を作成するためにforループを使用しますが、どのような長方形がクリックされたかを検出するArrayListとEventメソッドをどのように作成するのか分かりません。これについてどうすればいいですか?

編集: 私は、どの矩形をクリックして色を変えることができるのか、どのようにしてわかりますか?それが簡単になると、それは赤と青の2人のプレイヤーがいるゲームのためです。ボードは上記のスクリプトを使用して作成されます。特定の色のプレーヤーが白いスペースをクリックすると、ボードはその長方形の色をプレーヤーの色に変え、それが問題のある場所です。私は、プレーヤーがいつ矩形の1つをクリックしたかを知ることは決してありません。プレーヤーが四角形をクリックしたときの様子と、クリックしたときの色の変更方法はどのように分かりますか?

答えて

2

同じコンポーネントを構成する各コンポーネントに同じMouseListenerのインスタンスを追加します。マウスを押すと円の色が変わる例がhereです。

補足:改訂された質問に基づいて、GridButtonPanelは、コンポーネントが独自の座標をどのように知っているか、およびグリッド座標に基づいてコンポーネントを参照する方法を示しています。

a grid of colored circles

+0

ありがとうございました!私はかなりJavaに慣れていないし、JavaScriptやLuaのような弱くダイナミックなプログラミング言語の経験しか持っていないので、Javaへの移行は私のための少しのジャンプです。 – jocopa3

+0

喜んで助けてください。楽しい! – trashgod

関連する問題