MouseListener
を作成しようとしています。 JButton
の上にマウスを置くと、背景色と配列内の次のJButton
が変更されます。たとえば、私がJButton[0][0]
をホバーすると、JButton[0][0]
、JButton[1][0]
、JButton[2][0]
などの背景が変わります。私はbtn[i+1][j].setBackground(Color.black);
をやって試してみましたが、それは[i+1][j]
[2][0]
、[1][0]
青...ではなく、設定しJButtonのマトリックスでイベントを作成するには?
@Override
public void mouseEntered(MouseEvent me) {
JButton event = (JButton) me.getSource();
int i = 0;
int j = 0;
btn[i][j] = event;
btn[i][j].setBackground(Color.blue);
}
@Override
public void mouseExited(MouseEvent me) {
JButton event = (JButton) me.getSource();
int i = 0;
int j = 0;
btn[i][j] = event;
btn[i][j].setBackground(Color.black);
}
:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
btn[i][j] = new JButton();
btn[i][j].addMouseListener(this);
btn[i][j].setBackground(Color.black);
panel.add(btn[i][j]);
}
}
とそのMouseListener
:ここ
は私がJButton
配列を作成する方法です。
私のプログラムを実行するとエラーはありません。
上の写真は私がやろうとしているかを示しています。
作業?あなたの投稿にエラーメッセージやスタックトレースがありますか? – MasterBlaster
「イベント」オブジェクトを使用してその状態を変更するだけです。あなたがやっているように配列を(間違って)掘り下げる必要はありません。 –
各ボタンに個別のActionListenerを割り当て、同じものを共有しないでください。 –