Java: JDialog Buttons hinzufügen?
Hey! Ich versuche ein Dialogfenster zu erstellen, das aus 5 Spalten und 5 Reihen besteht. In jedes Feld des Fenster soll der gleiche Button eingesetzt werden; sprich ich möchte in das Dialogfenster 25 Buttons einfügen. Dazu haben ich folgenden Code geschrieben. Leider erscheint im Dialogfenster nur ein einziger Button, obwohl ich in der for-Schleife eigentlich dafür sorge, dass 25 Buttons eingesetzt werden sollen. Kann mir jemand helfen? Vielen Dank schon mal im Voraus :)
import java.awt.*;
import java.awt.event.* ;
import javax.swing.*;
public class Aufgabe26 {
public static void main(String[] args) {
// Dialog-Fenster erzeugen
JDialog object = new JDialog();
// Titel erzeugen
object.setTitle("My first program");
// Größe und Position des Fensters einstellen
object.setBounds(500, 150, 500, 500);
// Fenster in Kästchen (wie Tabellenform) einteilen (verschiedene Positionen)
object.setLayout(new GridLayout(5,5));
Button b = new Button("Text");
// 25 Buttons ins Fenster platzieren
for (int k = 1; k < = 25; k++) {
object.add(b);
}
// Dialogfenster sichtbar machen
object.setVisible(true);
// Dialogfenster dauerhaft machen
object.setModal(true);
}
}
2 Antworten
Du hast ja nur einen Button erzeugt, den du adden kannst. Es wird ja nicht automatisch jedes mal einen Button erstellt , wenn du einen hinzufügst.
Ich würde dir deshalb ein Array aus Buttons empfehlen, dann kannst du da auch Listener drauf adden.
Button[] buttons = new Button[25] for(int i = 0; i < buttons.length; i++){ buttons[i] = new Button("Text") object.add(buttons[i]); }
~Tim
Und allgemein würd ich dir JavaFX empfehlen um das zu lernen.
Ist moderner und schicker, bietet mehr Möglichkeiten und ist meiner Ansicht nach einfacher damit was zu bauen (vor allem mit dem Scene Builder, da kannst dir deine GUI einfach ohne Code zusammenbasteln).
Du fügst aber immer den gleichen Button ein. Probiers mal so aus:
// 25 Buttons ins Fenster platzieren
for (int k = 1; k < = 25; k++) {
object.add(new Button("Text"));
}
Die Buttons sind dann aber ziemlich fürn Arsch, man kann da ja keinen Listener adden.