hallo,
ich habe folgendes Problem und zwar möchte ich ein CardLayout erzeugen, welches durch Nutzereingabe die Anzahl der Panels festsetzt und und das CardLayout erzeugt. Statisch funktioniert das ohne Probleme ,allerdings mit fester Anzahl
zur dynamischen Umsetzung hatte ich folgenden Ansatz:
das Problem daran ist das nicht alle Panels erzeugt werden, sondern nur das erste und das letzte und das die swing Komponenten(JLabel, JTextffield,...) nur auf dem letzten Panel angezeigt werden.
Kann mir da jem weiterhelfen ?
mfg
ich habe folgendes Problem und zwar möchte ich ein CardLayout erzeugen, welches durch Nutzereingabe die Anzahl der Panels festsetzt und und das CardLayout erzeugt. Statisch funktioniert das ohne Probleme ,allerdings mit fester Anzahl
Java:
...
final JPanel pt1 = new JPanel();
pt1.add(new JLabel("Panel1"));
final JPanel pt2 = new JPanel();
pt2.add(new JLabel("Panel2"));
final JPanel pt3 = new JPanel();
pt3.add(new JLabel("Panel3"));
cardPanel.setLayout(c1);
cardPanel.add(pt1,"1");
cardPanel.add(pt2,"2");
cardPanel.add(pt3,"3");
...
zur dynamischen Umsetzung hatte ich folgenden Ansatz:
Java:
final int max_panel = Integer.parseInt(Panel_GUI.frame_textfield.getText());
final JPanel panel[] = new JPanel[max_panel];
final JLabel label[] = new JLabel[max_panel];
/*Panel Komponente erstellen auf die jeweils dynamischen Panels*/
JLabel l2 = new JLabel("Frage?");
JTextField t2 = new JTextField(20);
JLabel l21 = new JLabel("Art der Antworten...");
try {
for(int i=1; i-1 < max_panel ; i++){
System.out.println(i);
panel[i] = new JPanel();
label[i] = new JLabel("Label" + i);
panel[i].add(new JLabel("Label" + i));
panel[i].add(l2);
panel[i].add(t2);
panel[i].add(l21);
cardPanel.setLayout(c1);
// cardPanel.add(panel[i], max_s);
cardPanel.add(panel[i], Panel_GUI.frame_textfield.getText());
cardPanel.add(label[i]);
}
} catch (Exception e) {
e.getStackTrace();
}
das Problem daran ist das nicht alle Panels erzeugt werden, sondern nur das erste und das letzte und das die swing Komponenten(JLabel, JTextffield,...) nur auf dem letzten Panel angezeigt werden.
Kann mir da jem weiterhelfen ?
mfg