行动改变背景按钮。我的Action doean不能使用Button ActionListener

时间:2017-02-22 16:00:16

标签: java swing button

我正在学习基本的java。现在我学习JAVA Swing。 我有一个ActionListener的问题,我不知道在使用ActionListener进行处理时如何更改按钮的颜色。 这是我的代码:

package mypack;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class myGame extends JFrame{
    public myGame() {
        createGUI();
    }

    public static void createGUI(){
        JFrame jf = new JFrame("Game 25 Lights Out!");
        jf.setSize(557, 620);
        jf.setLocation(400,100);
        jf.setLayout(null);
        jf.setResizable(false);
        JButton[] jbt = new JButton[25];
        int left = 10;
        int top = 0;
        for(int i=0; i<25; i++)
        {
            jbt[i] = new JButton(" " + (i+1));
            jbt[i].setSize(110,110);
            jbt[i].setLocation(top*110, left);
            jbt[i].setBackground(Color.GREEN);
            jbt[i].addActionListener(new ActionListener(){

                @Override
                public void actionPerformed(ActionEvent e) {


                }

            });
            top++;
            if(i==4||i==9||i==14||i==19){
                left += 115;
                top = 0;
            }
            jf.add(jbt[i]);
        }
        jf.setVisible(true);
    }

    public static void main(String[] args)
    {
        myGame.createGUI();
    }

}

我需要一些方法actionPerformed的指南。

1 个答案:

答案 0 :(得分:2)

@Override
public void actionPerformed(ActionEvent e)
 {
    JButton button = (JButton)e.getSource();
    // do something with the button
}

您可以从ActionEvent获取点击的按钮。然后你可以改变背景。

此外,使用此方法无需为每个按钮创建新的ActionListener。您可以在循环之前创建ActionListener,并为每个按钮添加相同的ActionListener