jToggleButton in Array/ArrayList

Greg50007

Aktives Mitglied
Hey,
ich versuche gerade 20 jToggleButtons nachträglich in ein Array (oder ArrayList) zu bekommen.
Ich habe schon einen passenden Code gefunden, der das für micht tut:

Java:
public void populateJButtonList() {
        // Gets the class attributes, e.g. JButton, String, Integer types, everything.
        // In this case it is this class, but can define any other class in your project.
        Field[] fields = PlugControlSettingsFrame.class.getDeclaredFields();

        // Loop over each field to determine if it is a JButton.
        for (Field field : fields) {

            // If it is a JButton then add it to the list.
            if (field.getType().equals(JToggleButton.class)) {
                try {
                    // De-reference the field from the object (ColorButtons) and cast it to a JButton and add it to the list.
                    jbuttons.add((JToggleButton) field.get(this));
                } catch (IllegalArgumentException | IllegalAccessException
                        | SecurityException e) {
                    e.printStackTrace();
                }
            }
        }
        }

einziges Problem: ich kann mit den knöpfen alles machen, außer den Variablen Namen erfragen. Habt ihr eine Idee wie ich es umsetzten kann? (egal ob mit dem oder anderen Code)

Ich stelle mir etwa so etwas vor (mal ganz banal)

Java:
JToggleButtons [] liste = new JToggleButtons[19];
for(int i = 0; i < liste.getLength(); i++){
    liste[i] = jRadioButton + i //hier müssten quasi alle 20 Knöpfe hinzugefügt werden.
 }

Alle Knöpfe heißen auch jToggleButton1, jToggleButton2, etc.
Wichtig ist nur, ich muss irgendwie an die variablen namen (jToggleButton1) kommen.

Mal sehen was ihr euch wieder tolles ausdenkt :)
schonmal ein schönes Wochenende an alle ;D

Lg.
 

Greg50007

Aktives Mitglied
Das ist ja nicht mein Code, das ist die einzige mögliche die ich bis jetzt gefunden habe um mehrere Buttons mittels Schleife in eine Liste zu bekommen.

Das dies nicht die optimale Lösung ist weiß ich. Es funktioniert ja leider auch nicht. Hast du denn dann vielleicht eine Idee wie ich mein Vorhaben realisiert bekomme?
 

mihe7

Top Contributor
Ach so, was funktioniert denn nicht oder andersrum gefragt: wenn Du die Referenzen schon in der Liste hast, warum brauchst Du dann die Variablennamen?
 

Greg50007

Aktives Mitglied
Ist vielleicht nicht die gängigste Methode und wird bestimmt auf ein wenig Kritik sorgen, aber ich speichere ein paar Eigenschaften der Buttons in einer XML. Jeder Button wird darin als Objekt gespeichert und heißt dort als sein Variablen Namen. Hat den Vorteil ich kann Name, Sichtbarkeit und Status (gedrückt, nicht gedrückt) jedes Buttons abfragen und speichern.

Gedacht ist es so, das ich bis zu 20knöpfe sichtbar auf einem Panel habe. Diese sollen in der Liste sein und per Button (plus/minus) hinzufügen oder entfernt werden (es geht dabei um die visibility) die kann ich aber nur verändern, wenn ich auch den variablen Namen habe. Ich hoffe das ist halbwegs verständlich 😅
Danke schonmal das du dich mit meinem Problem rumschlägst 🙈
 

Greg50007

Aktives Mitglied
Geht darum das ich den Wert (true/false) der visibility ja in der XML speichern muss und dafür den variablen Namen bräuchte

EDIT: oder ich muss per if abfragen jeden Button einzeln abfragen ob er sichtbar ist und es so dann speichern...
 

Greg50007

Aktives Mitglied
Mag sein das ich dich einfach nicht richtig verstehe... Aber inwiefern hilft mir der Name der Liste weiter?
Hättest du vielleicht ein Code Beispiel? Bin noch nicht so tief in der Materie... Auch mit dem Index kann ich Grade leider nicht viel anfangen :(
 

mihe7

Top Contributor
Du hast eine Instanzvariable
Java:
private List<JButton> jbuttons;
die Du mit Deiner Methode oben füllst. Danach kannst Du auf jeden Button zugreifen:
Java:
jbuttons.get(0).setVisible(false);
um z. B. den ersten (Index 0) JButton unsichtbar werden zu lassen.

Wenn Du also speicherst, dass aus der Liste jbuttons der Button mit Index 0 ein visible-Attribut false hat, dann kannst Du das ja genauso wieder rekonstruieren.
 

Greg50007

Aktives Mitglied
Okay, in die Richtung dachte ich auch. Dann bleibt doch aber die if abfrage für jeden Button um in der XML den richtigen Button per variablen Namen auswählen zu können
 

Greg50007

Aktives Mitglied
okay, lösung gefunden, ich kann jedem button einfach einen namen geben den ich dann abfragen kann. wenn ich die liste dann noch sortiert bekomme anhand der namen (sprich jbutton1, jbutton2, etc.) wäre ich sehr zufrieden. Das versuche ich dann später, bis jetzt bekomme ich nur müll bei raus:
Java:
public static Comparator<JToggleButton> test = new Comparator<JToggleButton>() {

    public int compare(JToggleButton jB1, JToggleButton jB2) {
      String jButton1 = jB1.getName().toUpperCase();
      String jButton2 = jB2.getName().toUpperCase();
    return jButton1.compareTo(jButton2);
}};

output ist:
jToggleButton1
jToggleButton10
jToggleButton11
jToggleButton12
jToggleButton13
jToggleButton14
jToggleButton15
jToggleButton16
jToggleButton17
jToggleButton18
jToggleButton19
jToggleButton2
jToggleButton20
jToggleButton3
jToggleButton4
jToggleButton5
jToggleButton6
jToggleButton7
jToggleButton8
jToggleButton9

immerhin ist die 1 oben xD
Gute Nacht
 

mihe7

Top Contributor
Dann bleibt doch aber die if abfrage für jeden Button um in der XML den richtigen Button per variablen Namen auswählen zu können
Nein. Die Variable ist Deine Liste, zusammen mit dem Index kommst Du an das betreffende Element. Da gibts kein if.

Vielleicht wirds mit einem Array deutlicher. Es spielt doch keine Rolle, ob Du mit jToggleButton0 oder mit jbuttons[0] auf den Button zugreifst. Einmal "heißt" der Button eben jToggleButton0 und einmal "heißt" er jbuttons[0]. Der Vorteil beim Array (und der Liste) ist, dass Du den Index in einer Variablen halten kannst, so dass Du keine if-Statements benötigst.
 

Greg50007

Aktives Mitglied
stimmt, das macht sinn. ich habs jetzt wie gesagt so gelöst das jeder button einen namen hat, den ich in meinem jetzigen code ja einfach erfragen kann. dieser ist mit dem variablen namen identisch. so hab ich die infos die ich für die xml datei brauche :)

Danke dir für die Hilfe :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
M Queue mit einem Array implemetieren Allgemeine Java-Themen 16
M Array Rang eines Elements Allgemeine Java-Themen 4
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
noah1407 Array Allgemeine Java-Themen 3
D Methoden Teil-Array mit Maximalwert bestimmen Allgemeine Java-Themen 23
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
L Array und Index Allgemeine Java-Themen 26
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
Willi.We Array sortieren Allgemeine Java-Themen 5
gotzi242 Array Summe bestimmen tipps? Allgemeine Java-Themen 14
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
H Array Sportschütze Allgemeine Java-Themen 6
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
M Array verändern Allgemeine Java-Themen 1
A JavaFX 2 dimensionales array Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
parrot Array Aufgabe Allgemeine Java-Themen 3
N String Array Eingabe Allgemeine Java-Themen 6
R Warum wird mir in der Konsole das "Standard Array" ausgegeben? Allgemeine Java-Themen 2
N Variablen Array Länge ändern. Allgemeine Java-Themen 8
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
A Array Problem Allgemeine Java-Themen 8
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
F Datei in String-Array einlesen Allgemeine Java-Themen 8
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
F 3 Dimensionales Array mit Allgemeine Java-Themen 9
M Steueralgorithmus verwandelt Array in Anfangszustand Allgemeine Java-Themen 9
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
T Objekt in Array packen Allgemeine Java-Themen 6
M Zahlen in Array anordnen Allgemeine Java-Themen 8
M Eclipse Unvollständigen Array ansteuern Allgemeine Java-Themen 2
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4
M Wie kann ich ein int[] Array in einer Methode benutzen? Allgemeine Java-Themen 6
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
J Variablen Array ertellen bei model.put Allgemeine Java-Themen 13
S Eindimensionales Array in zweidimensionales Array speichern Allgemeine Java-Themen 5
R convert 2d array list to 2d array Allgemeine Java-Themen 1
J json Array würfel Spalten durcheinander Allgemeine Java-Themen 9
MiMa Array umbau oder Alternative? Allgemeine Java-Themen 5
L Datentypen 3D Array Allgemeine Java-Themen 3
M 2D Array mit unterschiedlichen Längen erstellen und befüllen Allgemeine Java-Themen 11
Mario1409 Methoden JSON Array von URL Allgemeine Java-Themen 8
E Swing Array mit Bildern in GUI darstellen Allgemeine Java-Themen 2
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
M Zweidimensionales Array mit Binärzahlen füllen Allgemeine Java-Themen 8
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
G Array ohne Aufzählungszeichen ausgeben Allgemeine Java-Themen 6
J Wie kann ich ein Java Array als Säulendiagramm ausgeben? Allgemeine Java-Themen 2
Z 2D Array Pixels reparieren Allgemeine Java-Themen 2
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
B Polibios Array erweitern Allgemeine Java-Themen 1
R Index in einem Array löschen Allgemeine Java-Themen 10
R Index in einem Array löschen Allgemeine Java-Themen 2
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
J Array-List Bubble-Sort Allgemeine Java-Themen 12
4 Variablen Int-Array Int Zuweisen Allgemeine Java-Themen 7
J Array Allgemeine Java-Themen 8
Z Array mit unterschiedlichen Werten Allgemeine Java-Themen 1
L sortiertes Array im main aufrufen klappt nicht. Allgemeine Java-Themen 3
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
A Vector Strings in Array splitten Allgemeine Java-Themen 6
I Muster in Array suchen Allgemeine Java-Themen 10
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
B Zahlen manuell eingeben und in Array Speichern Allgemeine Java-Themen 2
R Wärmeleitung, 3d-Array Allgemeine Java-Themen 2
T Java Array in Methoden Allgemeine Java-Themen 1
D Erste Schritte Array von einer forschleife nach ausserhalb trasferieren Allgemeine Java-Themen 3
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
T Array in .txt oder .xml? Allgemeine Java-Themen 15

Ähnliche Java Themen

Neue Themen


Oben