2017-02-22 34 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 –