Mit einem Button einen anderen Button Triggern

Diskutiere Mit einem Button einen anderen Button Triggern im AWT, Swing, JavaFX & SWT Bereich.
Z

Z3R0-23

Hallo, ich habe einen Code und ich möchte gern jetzt gern ein Button erstellen der einen anderen Button Triggert und zwar random, ich habe das schon hinbekommen durch einen Bug bekomme denn aber zurzeit nicht wieder hin, bin dankbar für jede Hilfe
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;
    
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
    
        for(int i = 1; i < 37; i++)
        {
            JButton h = new JButton ("Test");
            frame.add(h);
            h.addActionListener(e -> actionPerformed(e, h));   
           }
        //Random Button auslöser
        JButton a = new JButton ("Random Button");
        frame.add(a);
        
    frame.setVisible(true);
     }
    
    
    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                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);
    }
}
 
MoxxiManagarm

MoxxiManagarm

Der Button a tut aktuell garnichts. Der braucht schon auch einen actionListener. Dann brauchst du noch einen Datencontainer für die anderen Buttons aus dem du einen zufälligen auswählen kannst. Den zufälligen Button "klickst" du dann.

Ein Beispiel abgeändert aus deinem Code:
Java:
public class Raster  {
    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.EXIT_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]);
            int finalI = i;
            buttons[i].addActionListener(e -> System.out.println("Button " + (finalI + 1) + " was activated."));
        }

        //Random Button auslöser
        JButton a = new JButton ("Random Button");
        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"));
    }
}
 
Zuletzt bearbeitet:
Z

Z3R0-23

Der Button a tut aktuell garnichts. Der braucht schon auch einen actionListener. Dann brauchst du noch einen Datencontainer für die anderen Buttons aus dem du einen zufälligen auswählen kannst. Für den zufälligen Button "klickst" du dann.

Ein Beispiel abgeändert aus deinem Code:
Java:
public class Raster  {
    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.EXIT_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]);
            int finalI = i;
            buttons[i].addActionListener(e -> System.out.println("Button " + (finalI + 1) + " was activated."));
        }

        //Random Button auslöser
        JButton a = new JButton ("Random Button");
        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"));
    }
}
Danke für die Antwort du hast mir echt geholfen
 
Z

Z3R0-23

Danke nochmal für die hilfe ich muss es bloß jetzt noch hinbekommen wenn der Random Butten gedrückt wird das der Button der dann gwedrückt wird auch das Bild zeigt das ich im Code hinterlegt habe
 
Thema: 

Mit einem Button einen anderen Button Triggern

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben