JTabedPanel

Status
Nicht offen für weitere Antworten.

mayrjohannes

Mitglied
Hallo, ich habe folgende Situation die ich nicht ganz verstehe.
Ich hab ein JTabedPanel und dort 2 Tabs.

In einer von JPanel abgeleiteten Klasse erstelle ich ein Panel mit meinem Inhalt:
detailPanel = this;
detailPanel.setLayout(new BorderLayout());
detailPanel.add(getCarDataPanel(), BorderLayout.NORTH);
detailPanel.add(getCarAssurancePanel(), BorderLayout.SOUTH);

In meiner Hauptklasse füge ich dann dieses Panel und ein weiters welches auf gleiche weiße aufgebaut wurde in ein JTabedPanel ein:

carTab = new JTabbedPane();
carTab.addTab("Liste", null, getCarFilterPanel(), null);
carTab.addTab("Detail", null, getCarDetailPanel(), null);

Wenn ich nun das Frame vergrößere, so wird nur das TabedPanel mitvergrößert, nicht jedoch der Inhalt des jeweiligen Tabs, also das in der oberen Klasse erstellte Panel. Bei diesem Panel verwende ich als Layout Manager GridBagLayout.
Weiters habe ich 2 Felder in diesem GridBagLayout bei welchem das linke auf weight null gestellt ist, es sich also nur soviel platz nimmt wie es wirklich braucht. Im Feld daneben ist ein Textfeld. wenn ich dieses aber nicht mit setColums vergrößere wird es nicht angezeigt (vermutlich da Breite = 0) obwol im GridBagLayout das Feld fill auf Horizontal gestellt ist

Woran kann das liegen?

mfg Johannes
 

André Uhres

Top Contributor
Deine Beschreibung ist ziemlich verwirrend, mal sagst du BorderLayout, dann wieder GridBagLayout (mit wiederum anderem Inhalt). Vielleicht sagst du einfach mal was rauskommen soll..
 

mayrjohannes

Mitglied
Also ich versuchs noch mal.

Ich hab eine Frame (BoderLayout), in die füge ich ein TabedPanel ein, wobei jeder Tab wiederum ein JPanel (BorderLayout) erhält. Im JPanel des ersten Tabs befinden sich wiederum 2 JPanels (GridBagLayout) mit einem Rahmen um die Textfelder optisch voneinander zu trennen.
Hier mein erstes Problem:
Wenn ich die Frame vergrößere, so wird das Tab wie erwartet auch mit vergrößert, jedoch nicht der Inhalt des Tabs.
Mein zweites Problem liegt bei den beiden JPanels mit GridBagLayout.
Dieses Panel habe ich mit 2 Spalten aufgebaut. In der ersten ist ein Label für das Textfeld in der zweiten Spalte. In der ersten Spalte habe ich fill auf NONE gestellt. In der zweiten Spalte auf HORIZONTAL.
Wenn ich jedoch nicht für ein Textfeld in einer beliebigen Zeile eine Breit angebe, so nimmt das Textfeld nicht allen ihm zur verfügung stehenden Platz ein sonder nur den tatsächlich benötigten. Textfelder in denen weniger Text steht haben aber trotzdem die selbe Breite wie das größte Textfeld.

Woran kann das liegen?
Ich hoffe jetzt hab ichs nicht so konfus erklärt.

mfg Johannes
 

mayrjohannes

Mitglied
Wie meistens nach dem man verzweifelt um hilfe fragt: Ich habs geschaft!!!
Ich muß für die Label weigthx auf 0 und für die Textfelder weightx auf 1 setzen, jetzt funktionierts

mfg Johannes
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben