Probleme mit GridBagLayout

der_rumpel

Mitglied
Hi,

ich habe eine Gui gebastelt, welche besteht aus einem erweiterten SplitPaneLayout,
so dass ich oben im oberen Bereich eine eine Textaerea und ein Panel habe, im unteren Bereich 3 Panels.

Die 3 unteren Panels habe ich mit ein GridBagLayout angeordnet damit sie nebeneinander sind und möchte jetzt die 3 Panels wider mit einem GridBagLayout weiter bearbeiten.

Leider kann ich in den GridBagConstraints angeben was ich will, es reagiert einfach nicht, das Label befindet sich immer in der Mitte des Panels. Ich habe jetzt schon alles mögliche probiert, vielleicht kann mir jemand helfen.

Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.util.Arrays;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import javax.swing.border.Border;


public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		
		JPanel panelBottom = new JPanel(new GridBagLayout());
		JPanel panel1 = new JPanel(new GridBagLayout());
		JPanel panel2 = new JPanel(new GridBagLayout());
		JPanel panel3 = new JPanel(new GridBagLayout());
		JComponent label1 = new JLabel("jkdfhajksdfh");
		JLabel label2  = new  JLabel("asdklöjfaskldjfaklö");
		Border lowerBorder;
		
		lowerBorder = BorderFactory.createLoweredBevelBorder();
		
		
	
		
		
		SplitPaneTop splitPaneTop = new SplitPaneTop();
		JSplitPane top = splitPaneTop.getSplitPane();
		top.setBorder(null);
		
		
		
		panelBottom.setPreferredSize(new Dimension(900, 200));
		//panelBottom.setBackground(Color.GRAY);
		
		GridBagConstraints gbc1 = new GridBagConstraints();
		gbc1.fill = GridBagConstraints.BOTH;
		gbc1.gridx = 0;
		gbc1.gridy = 0;
		//gbc1.insets = new Insets(5,5,5,5);
		
		panel1.setPreferredSize(new Dimension(300, 200));
		panel1.setBackground(Color.GREEN);
		panel1.setBorder(lowerBorder);
		panelBottom.add(panel1, gbc1);
		
		GridBagConstraints gbc2 = new GridBagConstraints();
		gbc2.fill = GridBagConstraints.BOTH;
		gbc2.gridx = 1;
		gbc2.gridy = 0;
		//gbc2.insets = new Insets(5,5,5,5);
		
		panel2.setPreferredSize(new Dimension(300, 200));
		//panel2.setBackground(Color.ORANGE);
		panel2.setBorder(lowerBorder);
		panelBottom.add(panel2, gbc2);
		
		GridBagConstraints gbc3 = new GridBagConstraints();
		gbc3.fill = GridBagConstraints.BOTH;
		gbc3.gridx = 3;
		gbc3.gridy = 0;
		//gbc3.insets = new Insets(5,5,5,5);
		
		panel3.setPreferredSize(new Dimension(300, 200));
		//panel3.setBackground(Color.BLUE);
		panel3.setBorder(lowerBorder);
		panelBottom.add(panel3, gbc3);
		
		
		GridBagConstraints gbcP1 = new GridBagConstraints();
		gbcP1.fill = GridBagConstraints.BOTH;
		//gbcP1.gridwidth = GridBagConstraints.REMAINDER;
		gbcP1.anchor = GridBagConstraints.PAGE_START;
		gbcP1.gridy =4;
		gbcP1.gridx = 5;
		
		panel1.add(label1, gbcP1);
		
		GridBagConstraints gbcP2 = new GridBagConstraints();
//		gbcP2.gridx = 0;
//		gbcP2.gridy = 1;
		panel2.add(label2, gbcP2);
		
		

		
		JSplitPane splitPaneVertical = new JSplitPane(JSplitPane.VERTICAL_SPLIT, top, panelBottom);

		 splitPaneVertical.setOneTouchExpandable(true);
	     splitPaneVertical.setDividerLocation(180);

        //Provide minimum sizes for the two components in the split pane
        top.setMinimumSize(new Dimension(100, 50));
        panelBottom.setMinimumSize(new Dimension(300, 200));
	        
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setContentPane(splitPaneVertical);
		frame.pack();
		frame.setVisible(true);
		
		
		
		
		
		
	}
}


Java:
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.text.TabableView;


public class SplitPaneTop {
	
	JTextArea tA1, tA2;
	
	JScrollPane sP1, sP2;
	JSplitPane splitPane;
	JPanel panelRight;
	
	public SplitPaneTop() {
		
		tA1 = new JTextArea("Dies ist ein Text", 50, 20);
		sP1 = new JScrollPane(tA1);
		
		panelRight = new JPanel();
		
//		tA2 = new JTextArea("Dies ist uach ein Text", 50,20);
//		sP2 = new JScrollPane(tA2);
		splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, sP1, panelRight);
		
		splitPane.setOneTouchExpandable(true);
        splitPane.setDividerLocation(450);
        
        Dimension minimumSize = new Dimension(100, 50);
        sP1.setMinimumSize(minimumSize);
        panelRight.setMinimumSize(minimumSize);
        
        splitPane.setPreferredSize(new Dimension(900, 200));
		
	}
	
	 public JSplitPane getSplitPane() {
	        return splitPane;
	 }
	 
	


}
 
S

SlaterB

Gast
wie soll es denn stattdessen aussehen?
andere Spalten oder Zeilen sind schlecht wenn sie komplett leer sind, ich füge teilweise new JLabel("") als Platzhalter ein
 

der_rumpel

Mitglied
ja schon klar, das probiere ich ja schon die ganze Zeit, Sourcecode 1, Zeile 85, hab NORTH probiert, LINESTART usw, das problem ist es passiert nichts. Habe jetzt mehrere Lables und Textfields usw eingefügt, das ist auch alles ok, er setzt es mir nur nicht in die erste Zeile.

Hab den Code nochmal überarbeitet, da kann man es schön erkennen :-(

Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.Border;


public class Gui extends JFrame{
	
	
	JFrame frame = new JFrame();	
	JPanel panelBottom;
	JPanel panel1;
	JPanel panel2;
	JPanel panel3;
	JComponent labelKontoNummer;
	JLabel label1Kontostand;
	JLabel labelEuro;
	JLabel labelEinzahlung;
	JLabel labelEuro1;
	JLabel labelAuszahlung;
	JLabel labelEuro2;
	JLabel labelBetrag;
	JTextField field1;
	JTextField field2;
	Border lowerBorder;
	
	
	public Gui(){
	
		
		
		
		lowerBorder = BorderFactory.createLoweredBevelBorder();
		
		
		
		createAndShowGui(createSplitPane(createAndFillPanelBottom()));
	
	}
		
	private JSplitPane createSplitPane(JPanel panelBottom){
		SplitPaneTop splitPaneTop = new SplitPaneTop();
		JSplitPane top = splitPaneTop.getSplitPane();
		top.setBorder(null);
		
		
		JSplitPane splitPaneVertical = new JSplitPane(JSplitPane.VERTICAL_SPLIT, top, panelBottom);

		 splitPaneVertical.setOneTouchExpandable(true);
	     splitPaneVertical.setDividerLocation(180);

        //Provide minimum sizes for the two components in the split pane
        top.setMinimumSize(new Dimension(100, 50));
        //panelBottom.setMinimumSize(new Dimension(300, 200));
        
        return splitPaneVertical;
			
			
	}
	
		
	private JPanel createAndFillPanelBottom(){
		
		JPanel panelBottom = new JPanel(new GridBagLayout());
		JPanel panel1 = new JPanel(new GridBagLayout());
		JPanel panel2 = new JPanel(new GridBagLayout());
		JPanel panel3 = new JPanel(new GridBagLayout());
		
		JComponent labelKontoNummer = new JLabel("Kontonummer: 05143691");
		JLabel label1Kontostand = new JLabel("Kontostand");
		JLabel labelEuro = new JLabel("Euro");
		JLabel labelEinzahlung = new JLabel("Einzahlung");
		JLabel labelEuro1 = new JLabel("Euro");
		JLabel labelAuszahlung = new JLabel("Auszahlung");
		JLabel labelEuro2 = new JLabel("Euro");
		JLabel labelBetrag  = new  JLabel("Betrag", JLabel.CENTER);
		JTextField field1 = new JTextField(5);
		JTextField field2 = new JTextField(5);
		
		
		
		panelBottom.setPreferredSize(new Dimension(1200, 200));
		//panelBottom.setBackground(Color.GRAY);
		
		GridBagConstraints gbc1 = new GridBagConstraints();
		gbc1.fill = GridBagConstraints.NONE;
		gbc1.gridx = 0;
		gbc1.gridy = 0;
		//gbc1.insets = new Insets(5,5,5,5);
		
		panel1.setPreferredSize(new Dimension(400, 200));
		//panel1.setBackground(Color.GREEN);
		panel1.setBorder(lowerBorder);
		panelBottom.add(panel1, gbc1);
		
		GridBagConstraints gbc2 = new GridBagConstraints();
		gbc2.fill = GridBagConstraints.BOTH;
		gbc2.gridx = 1;
		gbc2.gridy = 0;
		//gbc2.insets = new Insets(5,5,5,5);
		
		panel2.setPreferredSize(new Dimension(400, 200));
		panel2.setBackground(Color.ORANGE);
		panel2.setBorder(lowerBorder);
		panelBottom.add(panel2, gbc2);
		
		GridBagConstraints gbc3 = new GridBagConstraints();
		gbc3.fill = GridBagConstraints.BOTH;
		gbc3.gridx = 3;
		gbc3.gridy = 0;
		//gbc3.insets = new Insets(5,5,5,5);
		
		panel3.setPreferredSize(new Dimension(400, 200));
		panel3.setBackground(Color.BLUE);
		panel3.setBorder(lowerBorder);
		panelBottom.add(panel3, gbc3);
	
		
		GridBagConstraints gbcP1 = new GridBagConstraints();
		gbcP1.fill = GridBagConstraints.HORIZONTAL;
		gbcP1.anchor = GridBagConstraints.LINE_START;
		gbcP1.gridx = 1;
		gbcP1.gridy = 0;
		panel1.add(labelKontoNummer, gbcP1);
		
		gbcP1.gridx = 0;
		gbcP1.gridy = 1;
		panel1.add(label1Kontostand, gbcP1);
		
		gbcP1.gridx = 1;
		gbcP1.gridy = 1;
		panel1.add(labelBetrag, gbcP1);
		
		gbcP1.gridx = 2;
		gbcP1.gridy = 1;
		panel1.add(labelEuro, gbcP1);
		
		gbcP1.gridx = 0;
		gbcP1.gridy = 2;
		panel1.add(labelEinzahlung, gbcP1);
		
		gbcP1.gridx = 1;
		gbcP1.gridy = 2;
		panel1.add(field1, gbcP1);
		
		gbcP1.gridx = 2;
		gbcP1.gridy = 2;
		panel1.add(labelEuro1, gbcP1);
		
		gbcP1.gridx = 0;
		gbcP1.gridy = 3;
		panel1.add(labelAuszahlung, gbcP1);
		
		gbcP1.gridx = 1;
		gbcP1.gridy = 3;
		panel1.add(field2, gbcP1);
		
		gbcP1.gridx = 2;
		gbcP1.gridy = 3;
		panel1.add(labelEuro2, gbcP1);
		
		
		
//		GridBagConstraints gbcP2 = new GridBagConstraints();
//		gbcP2.gridx = 1;
//		gbcP2.gridy = 0;
//		panel1.add(label2, gbcP2);
		
		return panelBottom;

	}
	        
        
		
	
		void createAndShowGui(JSplitPane splitPaneVertical){
			JFrame frame = new JFrame();	
			
			frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			frame.setContentPane(splitPaneVertical);
			frame.pack();
			frame.setVisible(true);
			
		}
	
}
 
S

SlaterB

Gast
also falls du nicht die FAQ meinst reicht nur weighty in diesem Fall nicht ganz, bzw. hat eher unschönes Ergebnis dass alle Zeilen auseinander gehen

mein Vorschlag:
Rest unten auffüllen, als letztes zum panel1:

Java:
		gbcP1.weighty = 1;
		gbcP1.gridy = 4;
		panel1.add(new JLabel(""), gbcP1);
 

der_rumpel

Mitglied
hey super :), es funktioniert, das GridBagL. kann aber auch echt komplizert sein, vor allem wenn man was ausprobiert, es dann nicht funktioniert, aber eigentlich richtig ist, man aber die Idee schon wieder verworfen hat weil man denkt so funktioniert es auch nicht :D

vielen Danke an euch
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S GridBagLayout - Probleme mit Bilderanzeige AWT, Swing, JavaFX & SWT 3
A Probleme mit gridheight (GridBagLayout) AWT, Swing, JavaFX & SWT 6
J LayoutManager GridBagLayout, probleme mit Anordnung von Objekten AWT, Swing, JavaFX & SWT 6
Sin137 LayoutManager GridBagLayout Probleme AWT, Swing, JavaFX & SWT 6
H GridBagLayout macht Probleme... AWT, Swing, JavaFX & SWT 4
das-mo Probleme mit GridBagLayout AWT, Swing, JavaFX & SWT 6
I Probleme mit dem GridBagLayout reloaded AWT, Swing, JavaFX & SWT 3
I Probleme mit dem GridBagLayout AWT, Swing, JavaFX & SWT 6
M GridBagLayout Probleme bei JPanel Aufteilung AWT, Swing, JavaFX & SWT 3
J Probleme mit Spaltenbreite bei GridBagLayout AWT, Swing, JavaFX & SWT 19
D Probleme mit GridBagLayout AWT, Swing, JavaFX & SWT 4
A GridBagLayout Probleme AWT, Swing, JavaFX & SWT 5
Student GridBagLayout - Probleme mit Constraints AWT, Swing, JavaFX & SWT 8
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
E repaint Probleme AWT, Swing, JavaFX & SWT 13
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
J Probleme mit idividueller Tablecell AWT, Swing, JavaFX & SWT 0
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
J Probleme mit InputDialog AWT, Swing, JavaFX & SWT 4
D JavaFX TextArea Probleme bei langen Zeilen AWT, Swing, JavaFX & SWT 1
G JavaFX SplitPane Anwendung - Controller Probleme AWT, Swing, JavaFX & SWT 5
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
pph080560 JavaFX Probleme mit FX AWT, Swing, JavaFX & SWT 3
M Probleme mit OpenJDK AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
U Opaque Probleme AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
S Swing Probleme mit MigLayout AWT, Swing, JavaFX & SWT 2
C Probleme mit createImage AWT, Swing, JavaFX & SWT 1
J Probleme mit contex Menu (javafx) AWT, Swing, JavaFX & SWT 1
J Probleme bei GameofLife AWT, Swing, JavaFX & SWT 24
S JavaFx - Button ActionEvent Probleme AWT, Swing, JavaFX & SWT 3
T Swing Probleme mit repaint() bzw. JScrollPane AWT, Swing, JavaFX & SWT 7
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 0
ImperatorMing JavaFX Probleme mit WindowEvent AWT, Swing, JavaFX & SWT 5
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit dem adden von JButtons zur JScrollPane AWT, Swing, JavaFX & SWT 2
D Swing Probleme mit dem Resizing AWT, Swing, JavaFX & SWT 7
G Probleme mit TextArea AWT, Swing, JavaFX & SWT 5
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
G Cardlayout Refresh Probleme AWT, Swing, JavaFX & SWT 2
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
blazingblade komischerweise probleme mit jtextfield.gettext() AWT, Swing, JavaFX & SWT 9
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
M Swing JProgressbar und Outoputstream probleme AWT, Swing, JavaFX & SWT 2
S Swing Probleme mit transparenz der Hintergrundfarbe und JRadioButtons AWT, Swing, JavaFX & SWT 2
Z Probleme mit JPanel's AWT, Swing, JavaFX & SWT 6
T Probleme mit Anzeige von Elementen im JPanel AWT, Swing, JavaFX & SWT 1
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
A Swing Probleme mit JScrollPane AWT, Swing, JavaFX & SWT 6
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
A Probleme mit TilledBorder("***") AWT, Swing, JavaFX & SWT 4
F Bildschirmschoner Probleme mit Preview AWT, Swing, JavaFX & SWT 8
X Panel Probleme (Tetris) AWT, Swing, JavaFX & SWT 8
N JTable probleme AWT, Swing, JavaFX & SWT 5
B Probleme bei ImageIO.read (?!) AWT, Swing, JavaFX & SWT 9
P JFrame Location-/Size-Probleme AWT, Swing, JavaFX & SWT 5
U LayoutManager Probleme mit Layouts AWT, Swing, JavaFX & SWT 5
C 3 kleine Probleme... AWT, Swing, JavaFX & SWT 13
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
A Probleme mit 2 JFrames in einem Programm AWT, Swing, JavaFX & SWT 7
K LayoutManager Probleme mit 2 Komponenten AWT, Swing, JavaFX & SWT 9
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
M Probleme mit Verkleinern eines GUI AWT, Swing, JavaFX & SWT 7
B Swing label.setText() macht probleme AWT, Swing, JavaFX & SWT 5
B ImageIcon - Probleme mit dem Dateipfad AWT, Swing, JavaFX & SWT 5
H JTree Probleme AWT, Swing, JavaFX & SWT 9
F Probleme mit (Graphics g) II AWT, Swing, JavaFX & SWT 4
F Probleme mit (Graphics g) AWT, Swing, JavaFX & SWT 3
K 2D-Grafik .GIF macht mir Probleme AWT, Swing, JavaFX & SWT 14
B Probleme bei Sortierung einer Tabelle mit DefaultTableModel AWT, Swing, JavaFX & SWT 6
T JTable Graphik probleme AWT, Swing, JavaFX & SWT 3
vandread Swing Probleme mit jTextField im zusammenspiel mit einem Einblendeffekt (inkl. KSKB) AWT, Swing, JavaFX & SWT 6
S Swing Lauftext Performance Probleme, in größerer Anwendung AWT, Swing, JavaFX & SWT 6
B Infolabel Probleme mit Paint() ? AWT, Swing, JavaFX & SWT 8
P Probleme mit setIconImage AWT, Swing, JavaFX & SWT 8
U Swing Probleme mit Asynchronen Prozessen und Swing: AWT, Swing, JavaFX & SWT 3
N 2D-Grafik 2 Probleme beim zeichnen AWT, Swing, JavaFX & SWT 18
L Probleme mit JPanel AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben