2017-02-22 3 views
0

Ich lerne basic java. Jetzt lerne ich JAVA Swing. Ich habe ein Problem mit ActionListener, ich weiß nicht, wie man eine Schaltfläche beim Prozess mit ActionListener ändert. Dies ist mein Code:Aktion Hintergrundtaste ändern. Meine Aktion funktioniert nicht mit 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(); 
    } 

} 

I actionPerformed einige Führer im Verfahren benötigen.

Antwort

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

Sie können die Schaltfläche, die aus der ActionEvent geklickt wurde, abrufen. Dann kannst du einfach den Hintergrund ändern.

Mit dieser Methode müssen Sie auch keinen neuen ActionListener für jede Schaltfläche erstellen. Sie können die ActionListener vor der Schleife erstellen und die gleiche ActionListener zu jeder Schaltfläche hinzufügen.

+0

So, um ActionListener zu implementieren, habe ich gelernt. Dank bro. Ich werde eine neue Klasse Action erstellen, um ActionListener zu implementieren. Und ich schätze neues Wissen: JButton button = (JButton) e.getSource(); : D –