JButton ArrayList erstellen und auf JLabel ausgeben.

Javaman91

Bekanntes Mitglied
Hallo,

ich beschäftige mich zum erste mal mit ArrayList.
Bis jetzt bin ich immer mit Array ausgekommen, doch jetzt möchte ich buttons erstellen lassen, wo anfangs aber nicht klar ist wie viele benötigt werden.
Also muss das ganze dynamisch sein.

Jetzt habe ich mal rumprobiert und bin gleich auf ein Problem gestoßen.
Wenn ich die ArrayList mit den buttons auf einem JLAbel ausgeben möchte, bekomme ich einen Fehler.

Folgendes habe ich mal gemacht, ich poste hier nur Code teile:

Java:
ArrayList<JButton> buttons = new ArrayList(); //Erstellen der ArrayList vom Datentyp JButton.
buttons.add(button = new JButton("Test button1")); // button der ArrayList hinzufügen.
buttons.add(button = new JButton("Test button2")); // button der ArrayList hinzufügen.

Jetzt möchte ich das ganze auf einem JLabel ausgeben:

Code:
label.add(buttons); // Das hier funktioniert nicht.

Bei einem Array hätte ich die buttons einfach mit einer Schleife so hinzugefügt.

Wie kann ich die buttons aus der ArrayList auf dem JLabel ausgeben?

VG
 

mihe7

Top Contributor
Bei einem Array hätte ich die buttons einfach mit einer Schleife so hinzugefügt.
Und das funktioniert auch mit einer (Array)List.

Java:
for (int i = 0, n = buttons.size(); i < n; i++) {
    label.add(buttons.get(i));
}

oder mit einer for-each-Schleife:

Java:
for (JButton button : buttons) {
    label.add(button);
}

Es gibt noch weitere Möglichkeiten (s. https://docs.oracle.com/en/java/jav...ble.html#forEach(java.util.function.Consumer) mit Methodenreferenz bzw. Lambda-Ausdruck, oder Streams). Aber das sei nur der Vollständigkeit halber erwähnt.
 

Javaman91

Bekanntes Mitglied
Danke für deine Antwort.

Geht das nur mit einer Schleife, auch wenn ich nur einen Button habe?

Wenn ich das so probiere wie oben beschrieben:
Java:
label.add(button);

dann bekomme ich immer folgende Meldung (Siehe Bild).
 

Anhänge

  • Fehlermeldung.png
    Fehlermeldung.png
    32,1 KB · Aufrufe: 0

KonradN

Super-Moderator
Mitarbeiter
Die Methode add von Deinem label will eine Component als Parameter. Da kannst Du also immer nur einen Parameter übergeben, der eine Component ist (Also Instanzen von Component oder von Klassen, die von Component abgeleitet wurden). Eine ArrayList mag zwar Component Instanzen enthalten, aber das Zählt nicht.

Also das ist wie jemand, der auf der Leiter steht und einen Schraubendreher haben will. Dem gibst Du dann auch nur den Schraubendreher und nicht die ganze Werkzeugkiste. Auch wenn die ganze Werkzeugkiste bis auf einen Schraubendreher leer ist: Ein Schraubendreher und eine Werkzeugkiste mit einem Schraubendreher sind halt zwei unterschiedliche Dinge!

Und das ist hier in Java genau so. Die ArrayList ist hier halt jetzt in dem bildlichen Vergleich die Werkzeugkiste und die Component in der ArrayList sind die Schraubendreher. (Und so wie in dem Java Beispiel hast Du da nicht einfach einen Schraubendreher/Component sondern es ist halt ein Kreuzschraubendreher PH2x100mm/Button aber so wie der exakte Kreuzschraubendreher halt ein Schraubendreher ist, ist ein Button eine Component)
 

Blender3D

Top Contributor
Danke für deine Antwort.

Geht das nur mit einer Schleife, auch wenn ich nur einen Button habe?

Wenn ich das so probiere wie oben beschrieben:
Java:
label.add(button);
dann bekomme ich immer folgende Meldung (Siehe Bild).
Laut deiner Fehlermeldung ist button in deinem Code kein Button sondern eine ArrayList.
Die Methode add von dem Label erwartet aber ein Objekt vom Type Component was auf einen Button oder auch JButton zutrifft. Ich vermute einmal, dass in deinem Code so etwas wie
Java:
button = new ArrayList<JButton>;
steht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Auf JButton in Arraylist zugreifen Java Basics - Anfänger-Themen 6
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
M JButton setBackground() färbt nicht den ganzen Knopf Java Basics - Anfänger-Themen 4
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
J Jbutton blinkt Java Basics - Anfänger-Themen 5
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
E JButton und JTextField Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
J Erste Schritte if Abfrage von JButton in 2. Klasse Java Basics - Anfänger-Themen 27
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb Icon von JButton ändern Java Basics - Anfänger-Themen 1
P JButton -Arrays Java Basics - Anfänger-Themen 4
A JButton in anderer Klasse bearbeiten. Java Basics - Anfänger-Themen 2
L Erste Schritte JButton reagiert nicht Java Basics - Anfänger-Themen 5
S Bild über JButton legen Java Basics - Anfänger-Themen 3
V Einem JButton anweisungen geben Java Basics - Anfänger-Themen 4
D Methoden JButton und JLabel in einer Methode erstellen Java Basics - Anfänger-Themen 5
F Interface JButton von anderer Klasse hinzufügen Java Basics - Anfänger-Themen 2
J JButton macht was er will Java Basics - Anfänger-Themen 3
D JButton soll Farbe von JTextfield ändern Java Basics - Anfänger-Themen 5
H JButton - Wechsel der Textfarbe alle 500ms Java Basics - Anfänger-Themen 10
G KeyListener und JButton vertragen sich nicht Java Basics - Anfänger-Themen 1
N JButton anpassen Java Basics - Anfänger-Themen 3
S JButton soll für bestimmte Zeit verschwinden Java Basics - Anfänger-Themen 5
schoenosrockos JButton füllt immer das ganze frame Java Basics - Anfänger-Themen 1
D JButton in JDialog mit Action belgen Java Basics - Anfänger-Themen 6
V JButton einer anderen Klasse übergeben? Java Basics - Anfänger-Themen 6
F JButton [] mit Werten hinterlegen Java Basics - Anfänger-Themen 10
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A weiter JButton Fehler Java Basics - Anfänger-Themen 3
W JTable mit einem JButton-Array füllen Java Basics - Anfänger-Themen 4
S JCombobox und JButton verknüpfen Java Basics - Anfänger-Themen 6
V wie kann ich eine Schleife pausieren, bis ein Jbutton gedrückt wird ? Java Basics - Anfänger-Themen 17
N Erste Schritte JButton reagiert nur einmal. Java Basics - Anfänger-Themen 12
S JButton Java Basics - Anfänger-Themen 2
A Farben wechseln mit JButton Java Basics - Anfänger-Themen 2
S Farbe eine Zeile in JTable ändern, wenn JButton geklickt wurd Java Basics - Anfänger-Themen 4
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
S Interface JButton etc. wird in JFrame mit paint() nicht angezeigt Java Basics - Anfänger-Themen 6
A Labels Inner JButton Event Erstellbar? Java Basics - Anfänger-Themen 3
K JButton alles zurücksetzen Java Basics - Anfänger-Themen 1
U JButton: Beschriftung ueber Variable zuweisen Java Basics - Anfänger-Themen 6
S JButton erscheint erst bei Mouseover Java Basics - Anfänger-Themen 10
S JButton mit ActionListener Java Basics - Anfänger-Themen 5
S JDK installieren JButton BorderPoints?! Java Basics - Anfänger-Themen 7
E Problem mit erben von JButton Java Basics - Anfänger-Themen 7
J Bei Hinzufügen von JButton Programm langsam Java Basics - Anfänger-Themen 3
J Verknüpfung von JButton to JTextField Java Basics - Anfänger-Themen 4
S Jbutton per Passworteingabe aktivieren Java Basics - Anfänger-Themen 2
G über JButton Action einen anderen Button verändern Java Basics - Anfänger-Themen 7
H JButton - Icon(.png) aus resources laden Java Basics - Anfänger-Themen 23
M Hintergrundbild für JButton Java Basics - Anfänger-Themen 6
A jbutton - icon linksbündig, text zentriert Java Basics - Anfänger-Themen 10
M Input/Output JFrame mit JButton und JTextfield Java Basics - Anfänger-Themen 114
J Hilfe bei JButton Java Basics - Anfänger-Themen 6
A JButton[] und String[] in doppelter For-Schleife Java Basics - Anfänger-Themen 4
W JButton in gleiche Größe bringen Java Basics - Anfänger-Themen 4
pg1337 JButton zuschneiden Java Basics - Anfänger-Themen 3
T Modales JDialog schliessen mit JButton Java Basics - Anfänger-Themen 2
D JButton Array setBackground Java Basics - Anfänger-Themen 2
F JButton wie selektierter JTabbebPane-Header Java Basics - Anfänger-Themen 7
G jButton bei Klick String +1 Java Basics - Anfänger-Themen 5
C OOP Java JButton mit Funktion belegen Java Basics - Anfänger-Themen 3
S JButton wird nicht angezeigt Java Basics - Anfänger-Themen 14
C JButton.getIcon() != null Java Basics - Anfänger-Themen 3
E JButton-Text wird in Schleife nicht geändert Java Basics - Anfänger-Themen 4
F welches Layout für JButton-Liste verwenden Java Basics - Anfänger-Themen 6
T JButton Text ändern Java Basics - Anfänger-Themen 4
L JButton erscheint nur mit pack() Java Basics - Anfänger-Themen 3
U Passwort auf JButton setzen. Java Basics - Anfänger-Themen 2
E JButton Hintergrund / Rahmen entfernen? Java Basics - Anfänger-Themen 4
L Bild auf einem JButton Java Basics - Anfänger-Themen 4
K JButton.setText Problem Java Basics - Anfänger-Themen 6
M JButton und DisabledIcon Java Basics - Anfänger-Themen 2
K jButton zur Laufzeit hinzufügen Java Basics - Anfänger-Themen 22
A GUI - JButton problem! Java Basics - Anfänger-Themen 5
M JButton selbst nachprogrammieren Java Basics - Anfänger-Themen 3
A JButton Textrahmen Java Basics - Anfänger-Themen 7
A Platzierung eines JButton Java Basics - Anfänger-Themen 4
D JButton oder ImageIcon klickt "langsam" Java Basics - Anfänger-Themen 5
E JButton klassenübergreifend nutzen? Java Basics - Anfänger-Themen 6
R Liste graphischer Objekte z.B. JButton dynamisch erstellen Java Basics - Anfänger-Themen 13
J JList Inhalt nach JButton Klick aktualisieren Java Basics - Anfänger-Themen 8
S JButton trotz Box-Layout skalieren Java Basics - Anfänger-Themen 6
P JButton identifizieren Java Basics - Anfänger-Themen 8
K Funktion zu einem JButton hinzufügen Java Basics - Anfänger-Themen 27
D HTML Text von jButton disablen Java Basics - Anfänger-Themen 2
E Andere Form eines JButton Java Basics - Anfänger-Themen 17
A JButton ActionListener nach einmaligem Ausführen zurücksetzen Java Basics - Anfänger-Themen 13
B JButton Größe einstellen? Java Basics - Anfänger-Themen 3
E Zeilenumbruch in JButton mit Variable Java Basics - Anfänger-Themen 2
A JButton erscheint nicht (BlueJ) Java Basics - Anfänger-Themen 2
M JButton sieht komisch aus :-) Java Basics - Anfänger-Themen 5
B JPanel über JButton umändern Java Basics - Anfänger-Themen 9
D JButton transparent bekommen? Java Basics - Anfänger-Themen 5
H JButton Unsichtbar Java Basics - Anfänger-Themen 7
R JTextField mittels JButton in Konsole ausgeben Java Basics - Anfänger-Themen 2
J Variable die bei JButton Clicks mitzählt Java Basics - Anfänger-Themen 9

Ähnliche Java Themen


Oben