GridBagLayout Komponenten Anordnungsproblem

Status
Nicht offen für weitere Antworten.

xiix

Mitglied
Hi,
ich habe dieses Layout für ein Programm in der Schule gemacht, doch schaffe ich eine Kleinigkeit nicht. Es geht um die 3 Buttons rechts, die ineinander sind, obwohl sie durch
Java:
c.gridwidth = GridBagConstraints.RELATIVE;
eigentlich nacheinander kommen sollten, doch ist dem nicht so!

Wie kann ich das ändern, ohne die eine Komponente NORTH, die andere CENTER und die letzte SOUTH zu positionieren?

19221,bsp6PA2J.jpg


Nur der Buttonausschnitt:
Java:
c.gridx=1;
		c.gridy=0;
		add(new JLabel("Patientenverwaltung"), c);

		c.fill = GridBagConstraints.NONE; //ob und wie die Komponente ihren Anzeigebereich ausfüllt
		c.anchor = GridBagConstraints.NORTH; //Festlegung der Position einer Komponente innerhalb ihres Anzeigebereichs, falls sie diesen nicht voll ausfüllt.
		c.gridwidth = GridBagConstraints.RELATIVE; //definiert die Anzahl an Gitterzellen, über die sich der Anzeigebereich horizontal erstreckt
		c.gridx=1;
		c.gridy=1;
	    JButton b;
		add(b = new JButton("Patienten hinzufügen"), c);
		list.add(b);

		add(b = new JButton("Patienten entfernen"), c);
		list.add(b);

		add(b = new JButton("Patienten Eigenschaften"), c);
		list.add(b);

Gesamter Code:
Java:
import java.awt.*;
import java.util.ArrayList;

import javax.swing.*;

public class AphasieInterface extends JFrame
{
	private static final long serialVersionUID = -1865031491305560236L;
	private ArrayList<Component> list = new ArrayList<Component>();

	public AphasieInterface()
	{
		super("Aphasie");
		
		this.setContentPane(this.getContentPane());
		this.setLayout(new GridBagLayout());
		
		GridBagConstraints c = new GridBagConstraints();
		c.fill = GridBagConstraints.HORIZONTAL;
	    c.insets = new Insets(5, 5, 5, 5);
	    c.gridheight=c.gridwidth=1;
	    
	    c.gridy=0;
	    c.gridx=0;
		add(new JLabel("Patientenliste"), c);
		
		c.gridx=0;
	    c.gridy=1;
	    String[] content = { "Scho wieda a Patient", "Scho wieda a Patient", "Scho wieda a Patient", "Scho wieda a Patient", "Scho wieda a Patient", "Scho wieda a Patient", "Scho wieda a Patient", "Scho wieda a Patient", "Scho wieda a Patient", "Geile Nutte" };
	    JList li;
		add(new JScrollPane(li = new JList(content)), c);
		list.add(li);
		
		c.gridx=0;
		c.gridy=2;
		JTextField txt;
		add(txt = new JTextField(), c);
		list.add(txt);

	    c.gridheight = 1;
		
		c.gridx=1;
		c.gridy=0;
		add(new JLabel("Patientenverwaltung"), c);

		c.fill = GridBagConstraints.NONE; //ob und wie die Komponente ihren Anzeigebereich ausfüllt
		c.anchor = GridBagConstraints.NORTH; //Festlegung der Position einer Komponente innerhalb ihres Anzeigebereichs, falls sie diesen nicht voll ausfüllt.
		c.gridwidth = GridBagConstraints.RELATIVE; //definiert die Anzahl an Gitterzellen, über die sich der Anzeigebereich horizontal erstreckt
		c.gridx=1;
		c.gridy=1;
	    JButton b;
		add(b = new JButton("Patienten hinzufügen"), c);
		list.add(b);

		add(b = new JButton("Patienten entfernen"), c);
		list.add(b);

		add(b = new JButton("Patienten Eigenschaften"), c);
		list.add(b);
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.pack();
		this.setVisible(true);
	}
	
	public static void main(String[] args)
	{
		new AphasieInterface();
	}
	
	public ArrayList<Component> getComponentList()
	{
		return list;
	}
}

Falls ihr noch irgendetwas seht, was ihr nicht so gut findet, oder was man besser machen kann, schreibt es einfach, bin offen für jegliche konstruktive Kritik. :)

Danke MfG
xiix
 
Zuletzt bearbeitet von einem Moderator:

Ebenius

Top Contributor
Du willst nicht die gridwidth auf RELATIVE setzen, sondern gridx.

Den Rest hab ich mir nicht angesehen. Hilft das schon?

Ebenius
 

xiix

Mitglied
Nein, leider nicht.

So sieht es nach kleinen Veränderungen aus. Jetzt muss ich die 2 Buttons nur noch zum anderen Button bekommen :D
19228,bsp2LA23K.jpg

Java:
c.gridx=0;
        c.gridy=2;
        JTextField txt;
        add(txt = new JTextField(), c);
        list.add(txt);
 
        c.gridx=1;
        c.gridy=0;
        add(new JLabel("Patientenverwaltung"), c);
 
        c.fill = GridBagConstraints.HORIZONTAL; //ob und wie die Komponente ihren Anzeigebereich ausfüllt
        c.anchor = GridBagConstraints.NORTH; //Festlegung der Position einer Komponente innerhalb ihres Anzeigebereichs, falls sie diesen nicht voll ausfüllt.
        //c.gridheight = 3; //definiert die Anzahl an Gitterzellen, über die sich der Anzeigebereich horizontal erstreckt
        c.gridy=GridBagConstraints.RELATIVE;
        
        JButton b;
        add(b = new JButton("Patienten hinzufügen"), c);
        list.add(b);
 
        add(b = new JButton("Patienten entfernen"), c);
        list.add(b);
 
        add(b = new JButton("Patienten Eigenschaften"), c);
        list.add(b);

Nur ein Teilausschnitt zur besseren Übersicht, der ganze Source steht oben, wenn wer selbst testen mag, einfach das hier einfügen statt dem Label und die 3 Buttons ;)

Gn8
xiix
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Es gibt eine gridwidth. Diese legt fest, über wie viele Spalten sich eine Komponente erstreckt. Mögliche Werte für gridwidth:
  • 1: Der Normalfall. Eine Komponente ist so breit wie eine Spalte im Raster.
  • 2 oder größer: Eine Komponente erstreckt sich über mehrere Spalten im Raster.
  • REMAINDER: Die Komponente erstreckt sich über alle am Ende dieser Zeile übriggebliebenen Spalten. (Hat nur Sinn, wenn es mehrere Zeilen im Raster gibt.)
Alle anderen Werte ergeben keinen Sinn. Wie Du siehst ist RELATIVE nicht dabei.

RELATIVE ist ein Wert, den man nur auf gridx (und gridy) anwenden kann. Mögliche Werte für gridx:
  • 0: Die Komponente soll in der ersten Spalte des Rasters liegen.
  • 1 oder größer: Die Komponente soll in der zweiten (dritten, vierten, ...) Spalte des Rasters liegen.
  • RELATIVE: Die Komponente soll in der nächsten unbelegten Spalte des Rasters liegen
Ist das jetzt klarer formuliert? Eine umfassende Erklärung bietet das Sun Java™ Tutorial: How to Use GridBagLayout.

[Edit] Hey - da hast Du aber mächtig editiert. Mein Hinweis scheint ja nun doch geholfen zu haben.
Ebenius
 

Ebenius

Top Contributor
Probier mal, ob es schon hilft, wenn Du Zeile erweiterst durch:
Java:
c.gridheight = 4;
add(txt = new JTextField(), c);
c.gridheight = 1;
Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Swing-Komponenten-Größe im GridBagLayout beschränken Java Basics - Anfänger-Themen 2
N GridBagLayout: gleichmäßige verteilung von Komponenten Java Basics - Anfänger-Themen 23
M GridBagLayout und enthaltende komponenten Java Basics - Anfänger-Themen 5
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
B Image laden im GridBagLayout Java Basics - Anfänger-Themen 3
A GridBagLayout Fehler Java Basics - Anfänger-Themen 7
S Gridbaglayout Problem Java Basics - Anfänger-Themen 2
B GridBagLayout in der oberen rechten Ecke starten statt mittig Java Basics - Anfänger-Themen 2
L Das erste Mal GridBagLayout - wie geht das? Java Basics - Anfänger-Themen 5
J Gridbaglayout Java Basics - Anfänger-Themen 2
S Swing, Gridbaglayout Panel in Panel;funzt nicht!! Java Basics - Anfänger-Themen 3
K GridBagLayout Java Basics - Anfänger-Themen 7
L Fenster winzig klein durch GridBagLayout Java Basics - Anfänger-Themen 3
R GridBagLayout funktioniert nicht Java Basics - Anfänger-Themen 3
Y add Funktion für GridBagLayout zeigt Button nicht an Java Basics - Anfänger-Themen 3
L Swing GridBagLayout Java Basics - Anfänger-Themen 3
M GridBagLayout-Problem Java Basics - Anfänger-Themen 13
S GridBagLayout neue Objekte hinzufügen Java Basics - Anfänger-Themen 3
N JPanel - Gridbaglayout Java Basics - Anfänger-Themen 11
T GridBagLayout Autoanpassung Java Basics - Anfänger-Themen 6
S JTable in GridBagLayout zwingen Java Basics - Anfänger-Themen 2
S GridBagLayout: Problemchen Java Basics - Anfänger-Themen 2
Antoras weightx bei GridBagLayout Java Basics - Anfänger-Themen 2
C GridBagLayout Java Basics - Anfänger-Themen 6
J JButtons mit GridBagLayout anordnen Java Basics - Anfänger-Themen 9
G GridBagLayout und JTable Java Basics - Anfänger-Themen 2
D GridbagLayout Java Basics - Anfänger-Themen 16
G GridBagLayout Java Basics - Anfänger-Themen 3
G GridBagLayout einstellen Java Basics - Anfänger-Themen 5
W GridBagLayout und JTable Java Basics - Anfänger-Themen 4
C GridBagLayout BIld an variabler Stelle einfügen Java Basics - Anfänger-Themen 2
K Gridbaglayout, wie geht das? Java Basics - Anfänger-Themen 2
D GridBagLayout Java Basics - Anfänger-Themen 2
G GridBagLayout -> Wie werden Elemente "zentriert&quot Java Basics - Anfänger-Themen 7
J Problem mit GridBagLayout und JPanel Java Basics - Anfänger-Themen 4
M Problem mit Aktualisierung von GridBagLayout Java Basics - Anfänger-Themen 2
D GridBagLayout Java Basics - Anfänger-Themen 4
T ungewollte zentrierte Ausrichtung im Gridbaglayout Java Basics - Anfänger-Themen 5
M Problem mit GridBagLayout Java Basics - Anfänger-Themen 3
R GridBagLayout und JTextField: Textfeld ist viel zu schmal Java Basics - Anfänger-Themen 4
C Size JTextField in GridBagLayout Java Basics - Anfänger-Themen 2
J image im gridbaglayout? Java Basics - Anfänger-Themen 2
H GridBagLayout Java Basics - Anfänger-Themen 2
C Button in GridBagLayout einstellen Java Basics - Anfänger-Themen 4
K GridBagLayout, JFrame und Scrollen Java Basics - Anfänger-Themen 4
G GridBagLayout Java Basics - Anfänger-Themen 5
ShapeShifter GridBagLayout Java Basics - Anfänger-Themen 7
G GridBagLayout wie? Grundgerüst leicht komplex. Java Basics - Anfänger-Themen 2
G Linie/Gitter in GridBagLayout Java Basics - Anfänger-Themen 4
G GridBagLayout: Verständnisproblem Java Basics - Anfänger-Themen 5
P GridBagLayout Java Basics - Anfänger-Themen 2
D Komponenten, Module, Begrifferklärung Java Basics - Anfänger-Themen 4
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
C Einbinden von Komponenten mit Maven Java Basics - Anfänger-Themen 3
V Alle Komponenten eines JPanels Java Basics - Anfänger-Themen 14
T Optionale Komponenten Java Basics - Anfänger-Themen 8
M GUI- mehrere Komponenten auf Container adden Java Basics - Anfänger-Themen 2
P JavaFX - Komponenten skalieren Java Basics - Anfänger-Themen 16
J Klassen Hilfe bei unbekannten Zeilen bzgl. Klassen / Komponenten Java Basics - Anfänger-Themen 12
I komponenten werden in JFrame nicht richtig angezeigt Java Basics - Anfänger-Themen 1
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
F Platzieren von Komponenten in Swing Applet funktioniert nicht Java Basics - Anfänger-Themen 3
D JFrame, Komponenten verschmiert. Java Basics - Anfänger-Themen 15
N JTable - Zellfarben ändern, GUI-Komponenten in Zellen einfügen Java Basics - Anfänger-Themen 5
M Komponenten irgendwo versteckt? Java Basics - Anfänger-Themen 7
O swing komponenten werden nicht angezeigt Java Basics - Anfänger-Themen 6
MU5T4NG Komponenten in Schleife ansprechen Java Basics - Anfänger-Themen 13
B Tabelle, Größe der Komponenten Java Basics - Anfänger-Themen 2
D Wie genau kann ich in Java Komponenten entwickeln? Java Basics - Anfänger-Themen 6
P Scrollpane mit dynamisch erzeugten Komponenten Java Basics - Anfänger-Themen 3
M Fixe Position von GUI Komponenten ? Java Basics - Anfänger-Themen 9
Weiti Anzeige von komponenten erst bei Mouse-Over Java Basics - Anfänger-Themen 3
N Anordnug der Komponenten mit NetBeans Java Basics - Anfänger-Themen 9
M Obsolete Komponenten feststellen? Java Basics - Anfänger-Themen 3
L Komponenten in Layoutmanagern zentrieren Java Basics - Anfänger-Themen 5
J Probleme mit Visual Editor Komponenten auf Panel legen Java Basics - Anfänger-Themen 4
J Komponenten andordnen Java Basics - Anfänger-Themen 2
K Koordinaten von Swing Komponenten Java Basics - Anfänger-Themen 2
G Komponenten Java Basics - Anfänger-Themen 2
A Komponenten nur sporadisch sichtbar beim starten Java Basics - Anfänger-Themen 2
S Auf JButtonBar komponenten ausrichten, größe festlegen? Java Basics - Anfänger-Themen 5
S Wie komponenten positionieren? Java Basics - Anfänger-Themen 6
B Komponenten im LayoutManager zentrieren Java Basics - Anfänger-Themen 5
G Seit Java6 wird der Text von komponenten komisch dargestellt Java Basics - Anfänger-Themen 11
Q Beste Komponenten für 3-Schichten-Architektur gesucht Java Basics - Anfänger-Themen 7
T Anderes Fenster öffnen, darin enthaltene Komponenten ändern Java Basics - Anfänger-Themen 2
E Komponenten auf Panel positionieren Java Basics - Anfänger-Themen 3
S Komponenten löschen und ersetzen Java Basics - Anfänger-Themen 2
S Kommunikation zwischen Komponenten in einem JFrame Java Basics - Anfänger-Themen 10
P Abstand vom Rahmen zu Komponenten bestimmen? Java Basics - Anfänger-Themen 3
J Dynamische Größenveränderung der Komponenten verhindern Java Basics - Anfänger-Themen 8
S Alle Komponenten die ich auf die IDE ziehe sind align all Java Basics - Anfänger-Themen 7
B Komponenten einer Zeile, Spalte des GridLayouts hinzufügen Java Basics - Anfänger-Themen 3
M value von Komponenten erhalten Java Basics - Anfänger-Themen 3
G GUI Komponenten Java Basics - Anfänger-Themen 14
M Problem beim ändern von Komponenten während Visible(true) Java Basics - Anfänger-Themen 4
M Bei Swing Komponenten die Farbe ändern? Java Basics - Anfänger-Themen 12
S Benennung von Komponenten bei Swing? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben