2017-02-22 36 views
0

我正在学习基本的java。现在我学习了JAVA Swing。 我有ActionListener的问题,我不知道如何在使用ActionListener进行处理时更改按钮的颜色。 这是我的代码:操作更改背景按钮。我的动作doean不能使用Button 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。

回答

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

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

另外,使用这种方法,不需要为每个按钮创建新的ActionListener。您可以在循环前创建ActionListener,并将相同的ActionListener添加到每个按钮。

+0

这种方式来实现ActionListener,我已经了解到。多谢兄弟。我将创建一个新的Action类来实现ActionListener。我会学习新的知识:JButton button =(JButton)e.getSource(); :d –