1 Pluspunkt 0 Minuspunkte
Wie kann ich Buttons in Java zu einem Panel hinzufügen wenn das Programm bereits gestartet wurde?
von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Um dynamisch Buttons zu einem Panel hinzuzufügen, nachdem das JFrame bereits sichtbar ist und zum Beispiel auf einen Button-Klick, können Sie einen ActionListener verwenden.

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class DynamicButtonAdditionExample {
    public static void main(String[] args) {
        // Erstellen Sie ein JFrame
        JFrame frame = new JFrame("Dynamische Button Addition Beispiel");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);

        // Erstellen Sie ein JPanel mit FlowLayout
        JPanel panel = new JPanel();
        panel.setLayout(new FlowLayout());

        // Erstellen Sie einen vorhandenen Button
        JButton existingButton = new JButton("Existierender Button");

        // Fügen Sie den vorhandenen Button zum Panel hinzu
        panel.add(existingButton);

        // Fügen Sie das Panel zum JFrame hinzu
        frame.add(panel);

        // Erstellen Sie einen ActionListener für den vorhandenen Button
        existingButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // Hier wird der neue Button erstellt
                JButton newButton = new JButton("Dynamischer Button");

                // Fügen Sie den neuen Button zum Panel hinzu
                panel.add(newButton);

                // Aktualisieren Sie das Panel, um die Änderungen zu reflektieren
                panel.revalidate();
                panel.repaint();
            }
        });

        // Setzen Sie das JFrame sichtbar
        frame.setVisible(true);
    }
}
von (732 Punkte)  
0 Pluspunkte 0 Minuspunkte

Um Buttons zu einem bestehenden Panel in Java hinzuzufügen, können Sie die add Methode des Panels verwenden.

// Erstellen Sie ein JFrame
JFrame frame = new JFrame("Button Addition Beispiel");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);

// Erstellen Sie ein JPanel mit FlowLayout
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());

// Erstellen Sie einen vorhandenen Button
JButton existingButton = new JButton("Existierender Button");

// Fügen Sie den vorhandenen Button zum Panel hinzu
panel.add(existingButton);

// Erstellen Sie einen neuen Button
JButton newButton = new JButton("Neuer Button");

// Fügen Sie den neuen Button zum Panel hinzu
panel.add(newButton);

// Fügen Sie das Panel zum JFrame hinzu
frame.add(panel);
von (410 Punkte)  
Ich möchte nachdem

frame.setVisible(true);

aufgerufen wurde einen neuen Button hinzufügen. Z.b wenn ich auf einen Button klicke soll ein zweiter dynamisch erstellt werden.
Wenn Sie bereits ein laufendes Programm haben und die Buttons dynamisch hinzufügen möchten, müssen Sie sicherstellen, dass Sie auf dem Event Dispatch Thread (EDT) arbeiten, um Probleme mit der Swing-Komponenten-Thread-Sicherheit zu vermeiden. Verwenden Sie dazu SwingUtilities.invokeLater oder EventQueue.invokeLater.