Es wird nur ein Butten ausgelöst und die anderen nicht

Z3R0-23

Grünschnabel
Hallo, ich versuche grade bei dem Code mit der Random taste auf denn anderen Buttons ein Bild einzeigen zu lassen bloß es funktinert nur bei einem Button dem man fest legt (Schau Code ich habe die Stehle Makiert) und ein wert wie i kann ich ich nciht eintragen dann kommt immer ein error das es nicht geht
Java:
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import java.util.Random;
    


public class Raster extends JPanel  {
    
    public Raster(String title) {
    JFrame frame = new JFrame(title);
    
    //Fenster erzeugen
    frame.setSize(1000, 1000);
    frame.setLayout(new GridLayout(0, 6));           
    frame.setLocationRelativeTo(null);               
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    //Buttons erzeugen                               
    JButton[] buttons = new JButton[36];           
        for (int i = 0; i < buttons.length; i++)   
        {                                        //                       []
            buttons[i] = new JButton ("Test"); //                         []
            frame.add(buttons[i]);        //Hier muss was gemacht werden  \/
            buttons[i].addActionListener(e -> actionPerformed(e, buttons[6]));
        }
        //Random Button auslöser
        JButton a = new JButton ("Random");
        frame.add(a);
        a.addActionListener(e -> buttons[new Random().nextInt(buttons.length)].doClick());
        
    frame.setVisible(true);
     }
    
    
    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(() -> new Raster("Raster"));
    }
    
    public void actionPerformed(ActionEvent e, JButton btn)
    {
        Image image = new ImageIcon(getClass().getResource("punkt.jpg")).getImage();
        ImageIcon icon = new ImageIcon(image.getScaledInstance(btn.getWidth(),btn.getHeight(),Image.SCALE_FAST ));
        btn.setIcon(icon);
    }
}
 

Neue Beiträge

Zurück