Ich brauche GridBagLayout Hilfe

Status
Nicht offen für weitere Antworten.

Kiamur

Aktives Mitglied
Hallo!

Ich bin verzweifelt, was dieses GridBagLayout betrifft. Ich denke aber, dass dies der Layout Manager ist, den ich benötige.

Ich möchte zwei Listenfelder so anordnen, dass ich links und rechts im Fenster eins habe. Dazwischen sollen zwei Button sein, mit denen man das, was im linken (bzw. rechten) Listenfeld ausgewählt ist in das andere Listenfeld schaufeln kann.

Mein Code das so zu machen sieht bis jetzt so aus:

Code:
class GridBagPanel extends JPanel
{
	// Elemente des Panels anlegen
	private JList Liste1 = new JList();
	private JList Liste2 = new JList();
	
	private JButton Add = new JButton(">>");
	private JButton Remove = new JButton("<<");
	
	GridBagPanel()
	{
		setBackground(Color.LIGHT_GRAY);
		
		// GridBagLayout für Panel festlegen
		GridBagLayout gbl = new GridBagLayout();
		setLayout(gbl);
		
		// Instanz von GridBagConstrains erstellen
		GridBagConstraints gbc = new GridBagConstraints();
	
		gbc.insets = new Insets(10, 10, 10, 10);
		
		Liste1.setToolTipText("Liste1");
		gbc.anchor = GridBagConstraints.CENTER;
		gbc.ipadx = 180;
		gbc.ipady = 200;
		gbc.gridx = 0;
		gbc.gridy = 0;
		gbc.gridheight = 7;
		gbl.setConstraints(Liste1, gbc);
		add(Liste1);
		
		Liste2.setToolTipText("Liste2");
		gbc.anchor = GridBagConstraints.NORTHEAST;
		gbc.ipadx = 180;
		gbc.ipady = 200;
		gbc.gridx = 3;
		gbc.gridy = 0;
		gbc.gridheight = 7;
		gbl.setConstraints(Liste2, gbc);
		add(Liste2);
		
		gbc.ipadx = 60;
		gbc.ipady = 10;
		gbc.gridx = 1;
		gbc.gridy = 3;  // Zeile 3
		gbl.setConstraints(Add, gbc);
		add(Add);
		
		gbc.ipadx = 60;
		gbc.ipady = 10;
		gbc.gridx = 1;
		gbc.gridy = 5;  // Zeile 5
		gbl.setConstraints(Remove, gbc);
		add(Remove);
	}
}

Ich denke mal, dass ich gbc.ipadx schon verstanden habe (war auch nicht wirklich schwer), aber jetzt geht es los: gbc.gridx soll doch angeben, in der wievielten Spalte das jeweilige Element beginnen soll. gbc.gridy gibt dann die Zeile an. Warum werden dann die Buttons nicht untereinander gezeichnet, da der eine ja (meinem Verständis nach) in Zeile 3 ist, und der zweite in Zeile 5.

Warum sind die beiden Listenfelder in der Mitte des Panels (horizontal gesehen) und nicht oben, da ich doch bei beiden gbc.gridy = 0 angegeben habe.

Dann möchte ich Grundsätzlich noch wissen, ob man nicht irgendwie von vornherein sagen kann in wie viele Zeilen/Spalten das Panel eingeteilt werden soll. Das würde einem die Layoutplanung doch erheblich erleichtern, weil man dann ja ein grobe Skize auf einem gerasterten Blatt Papier machen könnte, und müsste die Werte für x und y Positionen nur abzählen und programmieren.

Ich hoffe ihr könnt mir helfen.

Gruß
Maik
 

Kiamur

Aktives Mitglied
Okay, ich habe jetzt noch mal eine andere Version. Was ich jetzt möchte, das ist, dass die Buttons nicht auf gleicher Höhe, wie die Listenfelder anfangen, sondern sie sollen vertikal in der Mitte sein.

Code:
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.*;

class GridBagPanel extends JPanel
{
	// Elemente des Panels anlegen
	private JList Liste1 = new JList();
	private JList Liste2 = new JList();
	
	private JButton Add = new JButton(">>");
	private JButton Remove = new JButton("<<");
	
	GridBagPanel()
	{
		setBackground(Color.LIGHT_GRAY);
		
		// GridBagLayout für Panel festlegen
		GridBagLayout gbl = new GridBagLayout();
		setLayout(gbl);
		
		// Instanz von GridBagConstrains erstellen
		GridBagConstraints gbc = new GridBagConstraints();
	
		gbc.insets = new Insets(10, 10, 10, 10);
		
		Liste1.setToolTipText("Liste1");
		gbc.anchor = GridBagConstraints.CENTER;
		gbc.ipadx = 180;
		gbc.ipady = 460;
		gbc.gridx = 1;
		gbc.gridy = 0;
		gbc.gridwidth = 4;
		gbc.gridheight = 7;
		gbl.setConstraints(Liste1, gbc);
		add(Liste1);
		
		Liste2.setToolTipText("Liste2");
		gbc.anchor = GridBagConstraints.CENTER;
		gbc.ipadx = 180;
		gbc.ipady = 460;
		gbc.gridx = 7;
		gbc.gridy = 0;
		gbc.gridwidth = 4;
		gbc.gridheight = 7;
		gbl.setConstraints(Liste2, gbc);
		add(Liste2);
		
		gbc.anchor = GridBagConstraints.CENTER;
		gbc.ipadx = 60;
		gbc.ipady = 5;
		gbc.gridwidth = 2;
		gbc.gridheight = 1;
		gbc.gridx = 5;
		gbc.gridy = 3;
		gbl.setConstraints(Add, gbc);
		add(Add);
		
		gbc.anchor = GridBagConstraints.CENTER;
		gbc.ipadx = 60;
		gbc.ipady = 5;
		gbc.gridwidth = 1;
		gbc.gridx = 5;
		gbc.gridy = 5;
		gbl.setConstraints(Remove, gbc);
		add(Remove);
	}
}[/img]
 

Kiamur

Aktives Mitglied
Soo, ich habe das Ganze jetzt so gelöst, dass ich der Spalte, in der sich die Button befinden (bzw. direkt dem oberen Button) den 'top inset' so gestezt habe, das der Rand zwischen dem Button und dem oberen Rand des Panels so groß ist, dass die Button weiter nach unten geschoben werden.

Ob das so gut ist, oder nicht weiss ich nicht. Vielleicht weiss es ja einer von euch . . . . . .
 

Niki

Top Contributor
Ich hab noch nie mit ipadx gearbeitet und bin immer mit meiner gui glücklich gewesen, probiers mal so:
Code:
Insets i = new Insets(3,3,3,3);
GridBagConstraints c = new GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.NORTHWEST,GridBagConstraints.NONE,i,0,0);

JList l1 = new JList();
JList l2 = new JList();

JScrollPane scroller1 = new JScrollPane();
JScrollPane scroller2 = new JScrollPane();

scroller1.getViewport().add(l1);
scroller2.getViewport().add(l2);

JButton button1 = new JButton(">>>");
JButton button2 = new JButton("<<<");

c.gridheight = 2;
c.weightx = 0.5;
c.weighty = 1.0;
c.fill = GridBagConstraints.BOTH;

// erste liste hinzufügen
add(scroller1, c);

c.gridx+=2;

// zweite liste hinzufügen
add(scroller2, c);

c.gridx=1;
c.gridheight = 1;
c.weightx = 0.0;
c.weighty = 0.5
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.SOUTH;

add(button1, c);
c.gridy++;
c.anchor = GridBagConstraints.NORTH;
add(button2, c);

kann sein dass ein kleiner fehler drin ist, ich habs nicht ausprobiert
 

Kiamur

Aktives Mitglied
Hi Niki!

Ich habe zwar jetzt das TableLayout genommen, aber wollte mich trotzdem noch für deine Antwort bedanken. Wenn mal wieder etwas Zeit ist, dann schaue ich mir deine Lösung mal an.

Gruß
Maik
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W JavaFX CSS und Vererbung - ich brauche nochmal etwas Nachhilfe AWT, Swing, JavaFX & SWT 28
J 2D-Grafik Brauche Erklärung von Methode AWT, Swing, JavaFX & SWT 1
B Swing Wann brauche ich repaint() ? AWT, Swing, JavaFX & SWT 1
J Swing Wann brauche ich @Override vor der paint()-Methode? AWT, Swing, JavaFX & SWT 1
V Swing Brauche Hilfe mit Label AWT, Swing, JavaFX & SWT 3
K Swing Brauche Hilfe AWT, Swing, JavaFX & SWT 6
O AWT Performance und Bug behebung[brauche Hilfe] AWT, Swing, JavaFX & SWT 2
D Ambitioniertes Projekt - Brauche Stichworte AWT, Swing, JavaFX & SWT 4
D Swing Wozu brauche ich getContentPane()? AWT, Swing, JavaFX & SWT 2
S Ich brauche eine Idee: Animation mit teil eines Bildes AWT, Swing, JavaFX & SWT 16
L Mein Kopf dreht sich... Brauche Hilfe beim GUI gestalten AWT, Swing, JavaFX & SWT 10
J Brauche ganz dringend Hilfe!!! AWT, Swing, JavaFX & SWT 5
S Brauche genaustes Verstaendnis ueber JTextField AWT, Swing, JavaFX & SWT 3
M brauche Hilfe um Einträge aus Jlist zu löschen AWT, Swing, JavaFX & SWT 4
W Brauche Swing-Experten AWT, Swing, JavaFX & SWT 4
P Welchen Listener brauche ich? AWT, Swing, JavaFX & SWT 7
G Welche Swing-Version brauche ich . AWT, Swing, JavaFX & SWT 6
S Wann brauche ich die prepareRenderer() Methode ? AWT, Swing, JavaFX & SWT 2
D Brauche einfachen HTML Editor AWT, Swing, JavaFX & SWT 2
M Ich habe Werte und Brauche Grafik! AWT, Swing, JavaFX & SWT 3
G Leider trotz allem kein Icon :( Brauche Hilfe AWT, Swing, JavaFX & SWT 3
G Selbstprogrammierter Editor - brauche Hilfe AWT, Swing, JavaFX & SWT 5
M Brauche nur den Pfad zum Speichern AWT, Swing, JavaFX & SWT 8
M Brauche Hilfe zum Einbinden von eigener Schrfitart AWT, Swing, JavaFX & SWT 3
S Brauche Hilfe mit JFrame - NullPointerException AWT, Swing, JavaFX & SWT 7
S Frame, brauche dringend hilfe AWT, Swing, JavaFX & SWT 4
M Konsolenprg-Ausgabe in GUI geleitet - Brauche ich Threads? AWT, Swing, JavaFX & SWT 2
N ProgressBar --> brauche Hilfe AWT, Swing, JavaFX & SWT 4
N Brauche Layout-Hilfe AWT, Swing, JavaFX & SWT 3
N Brauche Layout Hilfe AWT, Swing, JavaFX & SWT 9
Z Bei Problem mit Java Swing brauche dringende Hilfe AWT, Swing, JavaFX & SWT 3
O Brauche ich einen neuen Frame? AWT, Swing, JavaFX & SWT 2
V Brauche Hilfe beim Steuern des Sichtbereiches eines JPanel AWT, Swing, JavaFX & SWT 2
D Zoom problem!!! (brauche screenshot...) plz help thx AWT, Swing, JavaFX & SWT 7
S GridBagLayout Felder formatieren AWT, Swing, JavaFX & SWT 1
S GridBagLayout - Probleme mit Bilderanzeige AWT, Swing, JavaFX & SWT 3
C GridbagLayout verstehen lernen AWT, Swing, JavaFX & SWT 1
H GridBagLayout macht mich wahnsinnig :-( AWT, Swing, JavaFX & SWT 5
BabySuna darstellungsprobleme mit JTabbedPane und GridBagLayout AWT, Swing, JavaFX & SWT 8
CptK Positionieren von Elementen in GridBagLayout AWT, Swing, JavaFX & SWT 4
A Probleme mit gridheight (GridBagLayout) AWT, Swing, JavaFX & SWT 6
Mario1409 AWT GridBagLayout AWT, Swing, JavaFX & SWT 5
J LayoutManager GridBagLayout, probleme mit Anordnung von Objekten AWT, Swing, JavaFX & SWT 6
DaCrazyJavaExpert Swing Komponenten in GridBagLayout werden Falsch angeordnet AWT, Swing, JavaFX & SWT 1
T LayoutManager Anordnen der Elemente im GridBagLayout AWT, Swing, JavaFX & SWT 11
K GridBagLayout mit reponsive Design AWT, Swing, JavaFX & SWT 2
K GridBagLayout verändert die größe? AWT, Swing, JavaFX & SWT 1
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
B LayoutManager GridBagLayout und JScrollPane AWT, Swing, JavaFX & SWT 5
T GridBagLayout Anfängerprobleme AWT, Swing, JavaFX & SWT 3
Sin137 LayoutManager GridBagLayout Probleme AWT, Swing, JavaFX & SWT 6
L GridBagLayout Anordnung AWT, Swing, JavaFX & SWT 3
M Gridbaglayout Spaltenbreite AWT, Swing, JavaFX & SWT 3
M LayoutManager GridBagLayout passt seine größe nicht an AWT, Swing, JavaFX & SWT 3
V GridBagLayout AWT, Swing, JavaFX & SWT 4
N LayoutManager GridBagLayout - Grundlagen AWT, Swing, JavaFX & SWT 6
Neumi5694 Swing Gridbaglayout - automatische Anpassung verhindern AWT, Swing, JavaFX & SWT 1
P AWT Problem mit Platzierung (GridBagLayout) AWT, Swing, JavaFX & SWT 2
F Breite beim GridBagLayout festlegen AWT, Swing, JavaFX & SWT 2
M Swing GridBagLayout Komponentengröße festsetzen AWT, Swing, JavaFX & SWT 1
J GridBagLayout mit Hilfe einer For-Schleife befüllen AWT, Swing, JavaFX & SWT 1
W GridBagLayout Größe geben AWT, Swing, JavaFX & SWT 1
HarleyDavidson Swing Seltsames Verhalten GridBagLayout AWT, Swing, JavaFX & SWT 11
W GridBagLayout mit fester Zellgrösse AWT, Swing, JavaFX & SWT 2
N Swing GridBagLayout: Ein Pixel Versatz AWT, Swing, JavaFX & SWT 2
B Swing Gridbaglayout unterschiedliche Zeilenhöhe AWT, Swing, JavaFX & SWT 6
H LayoutManager GridBagLayout AWT, Swing, JavaFX & SWT 1
N GridBagLayout - was fehlt? AWT, Swing, JavaFX & SWT 8
S Swing rowHeight und rowWeight im GridBagLayout AWT, Swing, JavaFX & SWT 1
N Swing GUI mit GridBagLayout AWT, Swing, JavaFX & SWT 4
A jpanel mit gridbaglayout auf hintergrundbild AWT, Swing, JavaFX & SWT 7
S GridBagLayout-Frage AWT, Swing, JavaFX & SWT 1
G GridBagLayout AWT, Swing, JavaFX & SWT 6
S GridBagLayout "links-rechts-layouten" AWT, Swing, JavaFX & SWT 7
T LayoutManager GridBagLayout / erwartetes Raster fehlt AWT, Swing, JavaFX & SWT 3
X Gridbaglayout gridx + gridy auslesen? AWT, Swing, JavaFX & SWT 7
H GridBagLayout macht Probleme... AWT, Swing, JavaFX & SWT 4
N GridBagLayout - Zeitplan AWT, Swing, JavaFX & SWT 13
N Swing GridbagLayout AWT, Swing, JavaFX & SWT 4
S Swing gridbaglayout AWT, Swing, JavaFX & SWT 8
G GridBagLayout Problem AWT, Swing, JavaFX & SWT 4
Java-Insel LayoutManager Ein GridBagLayout-Objekt für mehrere Panels? AWT, Swing, JavaFX & SWT 2
X LayoutManager gridBagLayout wird nicht richtig Dargestellt AWT, Swing, JavaFX & SWT 5
das-mo Probleme mit GridBagLayout AWT, Swing, JavaFX & SWT 6
T LayoutManager GridBagLayout - zwei jTable mit unterschiedlicher Höhe AWT, Swing, JavaFX & SWT 2
N LayoutManager GridBagLayout schummeln erlaubt ? AWT, Swing, JavaFX & SWT 2
D GridBagLayout AWT, Swing, JavaFX & SWT 9
A Swing GridBagLayout - constraints.anchor scheint nicht korrekt zu funktionieren? AWT, Swing, JavaFX & SWT 7
J Swing Terminkalender Wochenansicht mit Gridbaglayout oder JTable AWT, Swing, JavaFX & SWT 16
C LayoutManager GridBagLayout - Anfängerfrage AWT, Swing, JavaFX & SWT 5
Asamandra LayoutManager GridBagLayout - Komponenten (mit fill?) vergrößern aber Proportionen dabei erhalten? AWT, Swing, JavaFX & SWT 3
R GridBagLayout in GridBagLayout AWT, Swing, JavaFX & SWT 2
H Positionierungsprobleme beim GridBagLayout AWT, Swing, JavaFX & SWT 16
Furtano AWT GridBagLayout macht mir Sorgen AWT, Swing, JavaFX & SWT 3
A GridbagLayout positionierungsproblem AWT, Swing, JavaFX & SWT 4
earlgrey_tea GridBagLayout Componenten proportional vergößern AWT, Swing, JavaFX & SWT 12
D JTable im GridBagLayout -> gridwidth AWT, Swing, JavaFX & SWT 6
T GridBagLayout Problem AWT, Swing, JavaFX & SWT 3
D Probleme mit GridBagLayout AWT, Swing, JavaFX & SWT 8
J Swing GridBagLayout: Links-nach-rechts Orientierung statt zentriert AWT, Swing, JavaFX & SWT 12

Ähnliche Java Themen

Neue Themen


Oben