JPanel - Gridbaglayout

Status
Nicht offen für weitere Antworten.

nastron

Mitglied
Hi zusammen,

folgender Code:
[Java]

JPanel UnteresPanel = new JPanel();
UnteresPanel.setLayout(new GridBagLayout());
GridBagConstraints gbc;
gbc = makegbc(0, 0, 2, 10);
gbc.weightx = 0;
gbc.weighty = 0;
gbc.fill = GridBagConstraints.BOTH;



List list = new List();
for (int i = 0; i < 20; ++i){
list.add("Item" + i);
}

UnteresPanel.add(list, gbc);
getContentPane().add(UnteresPanel, BorderLayout.SOUTH);

private GridBagConstraints makegbc(int x, int y, int width, int height)
{
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = width;
gbc.gridheight = height;
gbc.insets = new Insets(1,1,1,1);
return gbc;
}
[/Java]
Der Code steht im Konstruktor einer Klasse, bis auf die Methode makegbc. Der Code stimmt auch soweit, bekomme keinen Fehler angezeigt und das Programm ist auch ausführbar. Das Problem ist, dass die list im JPanel(UnteresPanel ) angezeigt wird, sie aber keine Position einnimmt bzw. irgendetwas annimmt, was ich mit gbc zuweise. Die Liste wird einfach nur in der Mitte des Jpanels angezeigt.
Hoffe jemand kann mir helfen.
 

nastron

Mitglied
Hi,

wenn ich die Gewichtung einstelle, nimmt die Liste die gesamte Breite des Jpanels ein - dabei ist es egal wie ich die Gewichtung einstelle. An der Größe verändert sich nichts. Und die Breite kann ich auch in keinster Weise varieren. Wenn ich die gbc.fill = GridBagConstraints.Both rausnehmen, ist auch die Gewichtung "weight".. egal die ich vergebe, dann steht die Liste wieder einfach in der Mitte - egal was ich mache
 
Zuletzt bearbeitet:

KrokoDiehl

Top Contributor
Welches Verhalten möchtest du denn genau erreichen?
Das
Code:
GridBagConstraints.BOTH
bedeutet ja: Nimm in alle Richtungen (horizontal und vertikal) soviel Platz wie's gibt. Und ein weightx-Wert über 0 wirkt sich nur entsprechend aus, wenn es mehrere Komponenten in dieser Zeile gibt, die sich den Platz prozentual einteilen können.
Wenn es nur eine gibt, ist es imho egal ob
Code:
weightx=0.1
oder
Code:
weightx=1.0
ist.

Aber mal anders gedacht: Wieso ein GridBagLayout wenn du auf dem Panel nur eine Komponente hast?
 

nastron

Mitglied
Es wird nicht bei einer Komponente bleiben, aber bevor ich noch weitere hinzufüge, wollte ich diese erstmal zum laufen bringen. Das Probelm ist einfach, das die Liste auf keine Werte hört(ausser auf weightx).... Egal was ich bei gridx usw.. einstelle, es ändert sich nichts
 

L-ectron-X

Gesperrter Benutzer
Für die Ausrichtung einer Komponente innerhalb einer Zelle gibt es auch noch das [c]anchor[/c]-Attribut.
 

nastron

Mitglied
anchor hilft leider auch nix. Das Problem ist, dass die List die ihr zugewiesen Wete anscheinend schon annimmt, sich aber nicht anpasst. Das heisst, dass sie die zugewiesenen Spaltenbereiche und Zeilenberiechen annimmt, sich ihre Größe aber nicht entsprechend anpasst. Das ist das Prob. :(
 

nastron

Mitglied
Es geht nicht umbedingt um die Darstellung. Es geht darum, dass die Liste sich nicht in Zeilenbreite und Spaltenbreite verändern lässt. Das heisst, sie hat ne Größe und die behält sie bei, egal was ich mache(getan habe).
 

Michael...

Top Contributor
Es geht nicht umbedingt um die Darstellung. Es geht darum, dass die Liste sich nicht in Zeilenbreite und Spaltenbreite verändern lässt. Das heisst, sie hat ne Größe und die behält sie bei, egal was ich mache(getan habe).
??Heisst das jetzt die Komponente soll genau 400px breit und 150px hoch sein und unabhängig von der Größe des Fensters immer so groß bleiben??
 

KrokoDiehl

Top Contributor
Ah, ich glaube ich verstehe langsam... du (nastron) erwartest, dass deine Komponente z.B. Breiter wird, wenn du
Code:
gridwith
auf 3 statt auf 2 erhöhst?

Falls ja, dann kannst du lange probieren, denn so funktioniert das GridBagLayout nicht. Solche Effekte sieht man erst mit mehreren Komponenten.
Das GBL nimmt immer den verfügbaren Platz. D.h. wenn der Container 400x400 groß ist, wird die Komponente darin ebenso groß (ok, Insets, Padding etc. kommt auch dazu). Wenn du die Komp. über 2 Zeilen gehen lässt, dann ist eine Zeile eben 200px hoch, wenn du sie über 4 gehen lässt, eben 100px. Einen Unterschied erkennt man nicht.

Also ich würde es gleich mit der kompletten Anzahl an Komponenten machen, die du darauf setzen willst. Dann sieht man auch Effekte wenn man gridwidth, weight, anchor, fill und all die Eigenschaften ändert.
Oder ein anderes Layout nehmen :)
 

nastron

Mitglied
Ja :D, hab mich wohl die ganze Zeit falsch ausgedrückt. Hab in meiner langsamen Denkweise nicht daran gedacht, dass die ganzen Komoponente aufeinander aufbauen.... Jetzt klappt das ganze einigermaßen.. obwohl gridbaglayout schon ein bisschen rumgebaue ist(wohl nicht wenn mans richtig versteht ;D) danke an alle für die Hilfe...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Problem mit GridBagLayout und JPanel Java Basics - Anfänger-Themen 4
J JPanel an Drucker printen Java Basics - Anfänger-Themen 9
G Optisch JPanel BorderLayout vertikaler Rand dicker als horizontaler Rand Java Basics - Anfänger-Themen 4
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
J Ein mit UI-Designer erstelltes JPanel einblenden Java Basics - Anfänger-Themen 0
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
Zeppi JPanel responsive Grid Java Basics - Anfänger-Themen 0
J JPanel in JScrollPanel Java Basics - Anfänger-Themen 4
Elyt JPanel als HintergrundBild Java Basics - Anfänger-Themen 7
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
O Swing JPanel Java Basics - Anfänger-Themen 4
CptK Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2
S JPanel wird nicht angezeigt Java Basics - Anfänger-Themen 1
D Animation JPanel Java Basics - Anfänger-Themen 1
M JLabels "verrutschen" beim übergeben von JPanel Java Basics - Anfänger-Themen 2
D Auf angeklicktes JPanel zugreifen Java Basics - Anfänger-Themen 5
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
D JPanel passt die Größe nicht an Java Basics - Anfänger-Themen 22
Y Webinhalt JPanel Java Basics - Anfänger-Themen 6
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
S JPanel variablenabhängig erstellen Java Basics - Anfänger-Themen 13
J Methoden Dinge auf einem JPanel paltzieren Java Basics - Anfänger-Themen 1
Z JPanel wird zweimal hinterinander gezeichnet.. Wieso? Java Basics - Anfänger-Themen 4
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
I A0-Format in jpanel anzeigen Java Basics - Anfänger-Themen 1
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
J Probleme mit eigenem JPanel (IDE Eclipse) Java Basics - Anfänger-Themen 4
S JPanel wird versetzt auf JFrame gelegt Java Basics - Anfänger-Themen 2
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
R Focus auf JPanel im Thread Java Basics - Anfänger-Themen 9
I Problem mit JPanel Java Basics - Anfänger-Themen 0
B JPanel ändert die Hintergrundfarbe nicht Java Basics - Anfänger-Themen 2
F Threads funktionieren auf JPanel nicht Java Basics - Anfänger-Themen 1
C JPanel in MessageDialog Java Basics - Anfänger-Themen 1
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
M Listener einerm JPanel hinzufuegen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
Q JPanel Java Basics - Anfänger-Themen 2
K Erste Schritte jpanel in einer klasse auslagern Java Basics - Anfänger-Themen 3
I Anfängerfrage JPanel repaint() Java Basics - Anfänger-Themen 6
N String auf JPanel bewegen Java Basics - Anfänger-Themen 6
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
S Layout mit JPanel in JScrollPanel funktioniert nicht Java Basics - Anfänger-Themen 3
S JPanel drucken -> PrinterException Java Basics - Anfänger-Themen 2
B JPanel -JTable Java Basics - Anfänger-Themen 2
H JPanel Hintergrund transparent setzen? Java Basics - Anfänger-Themen 10
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
L zoomen aus jpanel Java Basics - Anfänger-Themen 7
P Bekomme in meinen JPanel nur eine JComponente angezeigt Java Basics - Anfänger-Themen 7
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
R JFrame über einen JPanel Java Basics - Anfänger-Themen 5
I Veränderungen am JPanel vom JDialog aus Java Basics - Anfänger-Themen 6
F JPanel zu klein Java Basics - Anfänger-Themen 5
D GUI - Objekte in JPanel nach oben schieben Java Basics - Anfänger-Themen 2
S JPanel wird nicht eingefügt Java Basics - Anfänger-Themen 3
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
Kenan89 JPanel mit JTable Java Basics - Anfänger-Themen 9
I JPanel in JPanel Java Basics - Anfänger-Themen 2
A Zugriff auf Komponente innerhalb einer JPanel Java Basics - Anfänger-Themen 8
J Auf einem JPanel ein JFrame platzieren Java Basics - Anfänger-Themen 10
S JPanel anzeige Java Basics - Anfänger-Themen 2
propra Wie mache ich einem JPanel mein bereits instanziertes Model bekannt Java Basics - Anfänger-Themen 9
T Zugreifen auf JPanel Java Basics - Anfänger-Themen 4
K JPanel auslagern Java Basics - Anfänger-Themen 9
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
T Tastendruck simulieren in JPanel Java Basics - Anfänger-Themen 3
P JPanel in JTable einfügen Java Basics - Anfänger-Themen 23
E Erste Schritte Objekte werden in JPanel angedockt und maximiert Java Basics - Anfänger-Themen 7
M Componenten auf JPanel anzeigen Java Basics - Anfänger-Themen 2
F JPanel als JPG - weisse Fläche Java Basics - Anfänger-Themen 9
L Image laden und auf jPanel ausgeben Java Basics - Anfänger-Themen 7
M JLabel auf JPanel positionieren Java Basics - Anfänger-Themen 8
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8
D JPanel + ein JLabel Java Basics - Anfänger-Themen 8
B JPanel-Oberfläche speichern Java Basics - Anfänger-Themen 9
X JTable in JPanel in JTabbedPane mouseevent von jtable kommt nicht durch Java Basics - Anfänger-Themen 3
P GUI, JPanel Java Basics - Anfänger-Themen 7
H JPanel in andere Klasse übergeben Java Basics - Anfänger-Themen 7
D Grösse eines JPanel hinsichtlich LayoutManager festlegen Java Basics - Anfänger-Themen 4
B JPanel über anderem JPanel Java Basics - Anfänger-Themen 6
F zeichnen in JPanel Java Basics - Anfänger-Themen 7
F Unterschied JPanel und JFrame Java Basics - Anfänger-Themen 5
U JPanel dynamisch gestalten Java Basics - Anfänger-Themen 7
H Zeichnen in JPanel Java Basics - Anfänger-Themen 8
K Auf JPanel Zeichnen Java Basics - Anfänger-Themen 8
C jPanel im jPanel verändern Java Basics - Anfänger-Themen 15
B JPanel nachträglich verändern Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben