Dynamisch erzeugtes Label wird nicht angezeigt, TextField schon

Nisbo

Bekanntes Mitglied
Servus,

ich erstelle bei mir dynamisch Textfelder und Label, das komische dabei ist das die Textfelder angezeigt werden, die Labels aber nicht. Direkt in der Schleife lese ich getText() vom Label wieder aus und das wird mir auch angezeigt. Also was ist daran jetzt falsch ? Habe auch mal setVisible zusätzlich auf true gesetzt aber keine Änderung.

Java:
                JTextField extraBoxFromHH[] = new JTextField[extraButtonList.size()];
                JTextField extraBoxFromMM[] = new JTextField[extraButtonList.size()];
                JTextField extraBoxToHH[]   = new JTextField[extraButtonList.size()];
                JTextField extraBoxToMM[]   = new JTextField[extraButtonList.size()];
                JLabel     extraBoxLabel[]  = new JLabel[extraButtonList.size()];
             
                Integer i = 0;
                for (String extraShift : extraButtonList){
                    //JOptionPane.showMessageDialog(null, "Geht\n" + "\n" + extraShift + "\n" + extraButtonList.size());

                    extraBoxLabel[i] = new JLabel("Test" + extraShift);
                    extraBoxLabel[i].setBounds(447, lastPosition, 85, 14);
                    extraBoxLabel[i].setVisible(true);
                 
                    extraBoxFromHH[i] = new JTextField();
                    extraBoxFromHH[i].setText("00");
                    extraBoxFromHH[i].setColumns(10);
                    extraBoxFromHH[i].setBounds(541, lastPosition, 20, 20);
                 
                    extraBoxFromMM[i] = new JTextField();
                    extraBoxFromMM[i].setText("00");
                    extraBoxFromMM[i].setColumns(10);
                    extraBoxFromMM[i].setBounds(562, lastPosition, 20, 20);
                 
                    extraBoxToHH[i] = new JTextField();
                    extraBoxToHH[i].setText("00");
                    extraBoxToHH[i].setColumns(10);
                    extraBoxToHH[i].setBounds(592, lastPosition, 20, 20);
                 
                    extraBoxToMM[i] = new JTextField();
                    extraBoxToMM[i].setText("00");
                    extraBoxToMM[i].setColumns(10);
                    extraBoxToMM[i].setBounds(614, lastPosition, 20, 20);
                 
                    this.tab2.add(extraBoxLabel[i]);
                    this.tab2.add(extraBoxFromHH[i]);
                    this.tab2.add(extraBoxFromMM[i]);
                    this.tab2.add(extraBoxToHH[i]);
                    this.tab2.add(extraBoxToMM[i]);
                 
                    System.out.println("Label " + i + ": "  + extraBoxLabel[i].getText());
                 
                    i++;
                    lastPosition = lastPosition + 25;
                }

EDIT: 3 Minuten später selbst drauf gekommen, muss das panel neu rendern
this.tab2.updateUI();
 
Richtig hierbei wäre aber ein revalidate() auf den geänderten Container zu feuern und vor allem einen LayoutManager zu nutzen.
 

Neue Themen


Zurück
Oben