JTabbedPane mit for Schleife aufbauen

Liddas

Mitglied
Hallo zusammen,

ich hoffe ihr könnt mir vielleicht einen nützlich Ratschlag geben. Ich möchte in einer GUI ein JTabbedPane einbinden das eine bestimmte (vor ausgewählte) Anzahl an Reitern haben soll.

Vor dem Öffnen des JDialog kommt eine Frage in der man die Anzahl der Fragen eingeben soll. Anhand dieser Anzahl soll sich das JTabbedPane entsprechend aufbauen. Bisher bin ich soweit gekommen ....

Java:
public JTabbedPane tabbedPane(int questions)
   {
     JTabbedPane   pane   =   new JTabbedPane(JTabbedPane.SCROLL_TAB_LAYOUT);
     
     // Wenn questions == 0, dann disabled
     if( questions == 0 )
     {
       JPanel tab     =   new JPanel(new GridLayout(1, 1));
       JTextField text   =   new JTextField();
       text.setEnabled(false);
       tab.add(text);
       
       pane.addTab("Frage 1", tab);
     }

      // Wenn Fragen existieren dann Tab dynamisch aufbauen
     else
     {
       JPanel[] tabAs              =   new JPanel[questions];
       JTextField[] textAs       =   new JTextField[questions];
      
       for (int i = 1; i <= questions; i++)
       {
         tabAs[i]   =   new JPanel(new GridLayout(1, 1));
         textAs[i]   =   new JTextField();
         tabAs[i].add(textAs[i]);
         pane.addTab("Frage "+i, tabAs[i]);
       }
     }
     
     return pane;
   }

Jedoch scheint es so dass das JPanel[] nicht befüllt wird.

Kann mir vielleicht jemand einen Denkanstoß dazu geben :D ... das wäre nett.

Viele Grüße
Flo
 

Joose

Top Contributor
Dein for-Schleife ist falsch. Die läuft von "i = 1" bis "i = questions". Nach x Durchläufen wird dabei eine ArrayIndexOutOfBounds Exception fliegen.
Außerdem ist es unnötig hier ein Array zu befüllen. Sobald die Methode abgearbeitet wurde verschwinden die Arrays aus dem Speicher (die Tabs inkl Panel und Textfield bleiben aber erhalten und werden angezeigt), weil nichts mehr auf das Array verweist. Erspare dir das befüllen der Arrays und erzeuge einfach nur ein JPanel inkl Textfield und füge dies als Tab hinzu.

Bessere Variante: Verwende ein und das selbe Panel immer und immer wieder um Fragen hinzuzufügen.
 

Liddas

Mitglied
Danke, ich konnte so das Problem lösen.

Java:
public JTabbedPane tabbedPane(int questions)
   {
     JTabbedPane   pane   =   new JTabbedPane(JTabbedPane.SCROLL_TAB_LAYOUT);
     
     if( questions == 0 )
     {
       JPanel tab       =   new JPanel(new GridLayout(1, 1));
       JTextField text   =   new JTextField();
       text.setEnabled(false);
       tab.add(text);
       pane.addTab("Frage 1", tab);
     }
     else
     {
       // Wenn Fragen existieren dann Tab dynamisch aufbauen
       for (int i = 1; i <= questions; i++)
       {
         JPanel tab       =   new JPanel(new GridLayout(1, 1));
         JTextField text     =   new JTextField();
         tab.add(text);
         pane.addTab("Frage "+i, tab);
       }
     }
     
     return pane;
   }

Eine Frage zum Verständnis habe ich aber noch. Das JTabbedPane ist Teil eines Formulars, wenn ich dieses dann abschicke um die Informationen weiter zu verarbeiten bekomme ich dann ein Problem mit den Bezeichnungen der Textfelder?

Da ja alle JTextField's den Namen "text" haben. Ich bin zwar noch nicht so weit, aber bei bspw. PHP ist es so dass jedes Feld einen eindeutigen Namen haben muss damit ich dann mit dem entsprechenden Wert weiter arbeiten kann.
 

Joose

Top Contributor
Nein der Name deiner (lokalen) Variable lautet "text" und kann dabei auf irgendein(!!!) JTextField Objekt aus dem Speicher verweisen. Diese Variable hat eben nur einen Namen/Bezeichnung damit du man den Code besser/leichter verstehen kann und ein paar Zeilen später noch mit diesem Objekt arbeiten kann (Methoden aufrufen, Objekt an Methode weiterreichen, ....)

Eine Objekt in Java hat keinen Namen oder so sondern ist nur durch die Speicheradresse/Referenz ansprechbar.
Was das angeht bitte keine Vergleiche zwischen Java und PHP machen!

In PHP kannst du auch unzählige Objekte einer Klasse erstellen und alle in eine Liste legen, trotzdem hat nicht jedes Objekt einen eindeutigen Namen. Daher stimmt deine Aussage nicht ganz (du musst hier PHP und HTML trennen ;))
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
BabySuna darstellungsprobleme mit JTabbedPane und GridBagLayout AWT, Swing, JavaFX & SWT 8
I JTabbedPane mit DnD, [x]-Schaltfläche, [+]-Schaltfläche usw. AWT, Swing, JavaFX & SWT 1
D JScrollPane in JTabbedPane AWT, Swing, JavaFX & SWT 3
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
B JTabbedPane Tabs anordnen AWT, Swing, JavaFX & SWT 2
D JTabbedPane GUI Experimente AWT, Swing, JavaFX & SWT 4
N JLabel in JTabbedPane verschieben AWT, Swing, JavaFX & SWT 2
U JScrollPane -> JTabbedPane u.A. AWT, Swing, JavaFX & SWT 3
J JTabbedPane Vollbild wenn Tabwechsel AWT, Swing, JavaFX & SWT 1
B StateChangeListener auf JTabbedPane AWT, Swing, JavaFX & SWT 5
F jTabbedPane Tabwechsel deaktivieren AWT, Swing, JavaFX & SWT 2
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
M JTabbedPane verändern mit Nimbus Look and Feel AWT, Swing, JavaFX & SWT 1
F JTabbedPane bestimmten Tab ansprechen AWT, Swing, JavaFX & SWT 13
F JTabbedPane mit Button zum Hinzufügen eines neuen Tabs AWT, Swing, JavaFX & SWT 6
BRoll JTabbedPane setTitleAt OutOfBoundsExc AWT, Swing, JavaFX & SWT 4
K JTabbedPane Tab Markierung / Selektion AWT, Swing, JavaFX & SWT 4
B Custom JTabbedPane-Tab-Design AWT, Swing, JavaFX & SWT 2
L JTabbedPane Closebutton integrieren AWT, Swing, JavaFX & SWT 6
J JTabbedPane Grafik unterhalb der Tabs AWT, Swing, JavaFX & SWT 3
H Swing JTabbedPane: Zusätzliche Buttons neben den Tabs AWT, Swing, JavaFX & SWT 7
V JTabbedPane Eingefügte Labels verschoben AWT, Swing, JavaFX & SWT 2
M Swing JTabbedPane: Tab-Elemente anpassen AWT, Swing, JavaFX & SWT 3
S Swing JTabbedPane: Nur nach ButtonClick und nicht nach Click auf Tab ins nächste Tab wechseln AWT, Swing, JavaFX & SWT 2
P JTabbedPane per Menuitem erstellen AWT, Swing, JavaFX & SWT 20
K Swing JTabbedPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 19
B Swing JTabbedPane in JApplet -> Reiter bei Aktualisation mehrmals zu sehen AWT, Swing, JavaFX & SWT 3
M JTabbedPane -> setSelectedIndex funzt nicht AWT, Swing, JavaFX & SWT 3
D Bestimmtes JPanel innerhalb eines JTabbedPane ansprechen AWT, Swing, JavaFX & SWT 2
M jtabbedpane aktivieren/deaktivieren AWT, Swing, JavaFX & SWT 13
J Swing Letzten Tab einer JTabbedPane ermitteln AWT, Swing, JavaFX & SWT 6
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
B Hilfe zu JTable und JTabbedPane AWT, Swing, JavaFX & SWT 18
hdi LookAndFeel Nimbus BUG mit JTabbedPane?! AWT, Swing, JavaFX & SWT 5
hdi Swing Problem mit JTabbedPane AWT, Swing, JavaFX & SWT 2
A LookAndFeel Rollover Effekt bei JTabbedPane deaktivieren (Nimbus) AWT, Swing, JavaFX & SWT 8
T Inhalt von einem Tab an JTabbedPane größe ausrichten? AWT, Swing, JavaFX & SWT 2
S JTabbedPane Problem AWT, Swing, JavaFX & SWT 3
S JTabbedPane AWT, Swing, JavaFX & SWT 4
D JTabbedPane mit Eventlistener versehen? AWT, Swing, JavaFX & SWT 9
M Swing JTabbedPane Panels deaktivieren AWT, Swing, JavaFX & SWT 2
K JTabbedPane setName() für jedes Tab AWT, Swing, JavaFX & SWT 2
G JTabbedPane - Länge der Reiter beeinflussen? AWT, Swing, JavaFX & SWT 9
G Swing JTabbedPane Was für ein Border wird da um die Tabs gezeichnet? AWT, Swing, JavaFX & SWT 6
S Swing Komponentengröße in JTabbedPane AWT, Swing, JavaFX & SWT 7
M Ein Tab eine JTabbedPane durch Button Druck öffen AWT, Swing, JavaFX & SWT 2
Y LookAndFeel JTabbedPane: Tab-Farbe mit Nimbus setzen AWT, Swing, JavaFX & SWT 3
M CloseButton bei JTabbedPane AWT, Swing, JavaFX & SWT 4
P Swing JTabbedPane mit JButton einen anderen Tab anzeigen AWT, Swing, JavaFX & SWT 9
D JTabbedPane zentrieren AWT, Swing, JavaFX & SWT 2
S Swing JTabbedPane: Inhalt soll oben links anfangen AWT, Swing, JavaFX & SWT 6
Mike90 JTabbedPane Größe anpassen AWT, Swing, JavaFX & SWT 17
F JTabbedPane Reiter breite AWT, Swing, JavaFX & SWT 4
B JTabbedPane mit Enumeration dynamisch füllen AWT, Swing, JavaFX & SWT 5
D Swing Tab in JTabbedPane AWT, Swing, JavaFX & SWT 5
A JFrame > JTabbedPane > JPanel > addKeyListener AWT, Swing, JavaFX & SWT 18
D JTabbedPane - Farbe ändern im Bereich hinter den Reitern AWT, Swing, JavaFX & SWT 2
M JTabbedPane - Tab auslesen AWT, Swing, JavaFX & SWT 2
H Swing Problem mit JTabbedPane AWT, Swing, JavaFX & SWT 9
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
S Border von JTabbedpane-Tab? AWT, Swing, JavaFX & SWT 3
M JTabbedPane Docable? AWT, Swing, JavaFX & SWT 3
L Swing JTabbedPane - Index vom Tab AWT, Swing, JavaFX & SWT 3
D Swing JTabbedPane, TabComponent & Popup AWT, Swing, JavaFX & SWT 4
F Borders von JTabbedPane und JScrollPane AWT, Swing, JavaFX & SWT 5
W JTabbedPane Größe anpassen AWT, Swing, JavaFX & SWT 4
G Swing JTabbedPane vergrößern AWT, Swing, JavaFX & SWT 2
H Swing Register (jTabbedPane) dynamisch hinzufügen? AWT, Swing, JavaFX & SWT 7
D Tabs von JTabbedPane stylen AWT, Swing, JavaFX & SWT 6
U JTabbedPane: Layout-Probleme bei addTab zur Laufzeit AWT, Swing, JavaFX & SWT 2
1 JTabbedPane Tab ausdehnen AWT, Swing, JavaFX & SWT 3
F Swing JTabbedPane: Zur Laufzeit die Tabreihenfolge ändern AWT, Swing, JavaFX & SWT 2
M Elemente in JTabbedPane platzieren AWT, Swing, JavaFX & SWT 7
B Swing JFormattedTextField auf mehreren JPanels in einer JTabbedPane AWT, Swing, JavaFX & SWT 3
K LookAndFeel JTabbedPane mit Icon und CloseButton AWT, Swing, JavaFX & SWT 2
D Swing Probleme bei mit JTabbedPane.getChildren() AWT, Swing, JavaFX & SWT 4
I Swing Randnutzung bei JTabbedPane.LEFT AWT, Swing, JavaFX & SWT 2
ABstraCT JTabbedPane - click wird nicht immer ausgeführt ! AWT, Swing, JavaFX & SWT 10
P JTabbedPane und fill? AWT, Swing, JavaFX & SWT 2
D Swing mehrere JTable in separaten Tabs einer JTabbedPane AWT, Swing, JavaFX & SWT 2
G JTabbedPane transparent AWT, Swing, JavaFX & SWT 2
S Swing JTabbedPane: Resize des JFrame bei Tab wechsel AWT, Swing, JavaFX & SWT 8
thE_29 Swing JTabbedPane Focus von Komponenten außerhalb AWT, Swing, JavaFX & SWT 10
S Scrollbar in einem JTabbedPane AWT, Swing, JavaFX & SWT 4
A Schriftfarbe von jTabbedPane und Button Ändern AWT, Swing, JavaFX & SWT 7
R JTabbedPane Selektion verfolgen? AWT, Swing, JavaFX & SWT 2
byte JTabbedPane - Insets entfernen AWT, Swing, JavaFX & SWT 7
S JTabbedPane child setBounds AWT, Swing, JavaFX & SWT 4
J jTabbedPane mit jPanel füllen AWT, Swing, JavaFX & SWT 14
A JTable im JTabbedPane -> Überschriften werden nicht angez AWT, Swing, JavaFX & SWT 2
V Extended JTabbedPane AWT, Swing, JavaFX & SWT 7
V JTabbedPane - keine "Focus"-Box auf selektiertem T AWT, Swing, JavaFX & SWT 2
G JTabbedPane wird groesser wenn man anderen Tab auswaehlt. AWT, Swing, JavaFX & SWT 2
A JTabbedPane Tabwechsel rausfinden AWT, Swing, JavaFX & SWT 2
O JTabbedPane - Selected Color? AWT, Swing, JavaFX & SWT 1
T Wie aktualisiere ich die Contents einer JTabbedPane? AWT, Swing, JavaFX & SWT 3
G JTabbedPane zentiert alles AWT, Swing, JavaFX & SWT 3
P Schließen-Button bei JTabbedPane? AWT, Swing, JavaFX & SWT 2
D Probleme mit JTabbedPane AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben