Swing GUI Aufteilen?

jackisback

Erfahrenes Mitglied
Hallo,
Ich mache zur zeit eines Java Kurs und möchte jetzt eine GUI gestalten.
Folgende frage habe ich zur Aufteilung von Fenstern. Eigentlich komme ich aus der HTML Welt und dort würde ich ein Fenster aus geschachtelten ebenen aufbauen.

Ich möchte ein Fenster mit drei Bereichen definieren, oben ein bereich mit fester Höhe, der soll beim ziehen des Fensters in der breite mitlaufen.
Dann unten in zwei teile aufteilen, links eine Navigation mit fester Breite und daneben sozusagen den Hauptbereich dieser soll beim ziehen des Fensters in beide Richtungen mitlaufen aber bei einer minimalen Größe aufhören sich zu verkleinern. Daneben möchte ich ein Hintergrund grau malen und die Ebenen darüber mit einen abstand zueinander von 10px definieren.
Ich habe dazu ein Bild gemacht und bitte euch es mal anzuschauen und vielleicht könnt ihr mir dazu ein paar Tipps geben oder wenn es keine Größe mühe macht ein bisschen Code schreiben und Posten.

MFG
 

Anhänge

  • SwingFrame.jpg
    SwingFrame.jpg
    18,6 KB · Aufrufe: 69
Ok, ich habe mal etwas gemacht das fast schon so aussieht wie ich es haben wollte.
Jetzt habe ich noch ein Problem denn der Spalt in der Mitte vergrößert sich beim skalieren des Fensters kann jemand sich das mal anschauen vieleicht fällt ihm ja was dazu ein.

Hier der Code
Code:
package swing;

import java.awt.Choice;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

public class Frame extends JFrame{
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Frame fenster = new Frame();
		
		fenster.setSize(600, 600);
		fenster.setLocation(100, 100);
		fenster.setBackground(Color.white);
		fenster.setVisible(true);
		
		
		
	}
	
	public Frame(){
		
		super("IKB-Pleite Bank");
		GridBagLayout gridB = new GridBagLayout();
		getContentPane().setLayout(gridB);
		getContentPane().setBackground(new Color(219,232,249));
		GridBagConstraints gridC = new GridBagConstraints();
		
		
		
		JPanel p1 = new JPanel();
		p1.setBackground(new Color(191,219,255));
		p1.setBorder( new LineBorder(new Color(101,147,207)));
		JPanel p2 = new JPanel();
		p2.setBackground(new Color(191,219,255));
		p2.setBorder( new LineBorder(new Color(101,147,207)));
		
		JPanel p3 = new JPanel();
		p3.setBackground(Color.white);
		p3.setBorder( new LineBorder(new Color(101,147,207)));
		
		JPanel p4 = new JPanel();
		JPanel p5 = new JPanel();
		
		JButton hButton1 = new JButton("Neu");
		JButton hButton2 = new JButton("Bank");
		JButton hButton3 = new JButton("Kunden");
		
		//p1.setLayout(new GridLayout(3,1));
		
		//p1.add(hButton1);
		//p1.add(hButton2);
		//p1.add(hButton3);
		
		//Top
		gridC.gridx = 0;
		gridC.gridy = 0;
		gridC.gridwidth = 2;
		gridC.gridheight = 1;
		gridC.weightx  = 0;
		gridC.weighty = 0;
		gridC.ipady = 50;
		gridC.insets = new Insets(2,2,0,2);
		gridC.anchor = GridBagConstraints.NORTHWEST;
		gridC.fill = GridBagConstraints.HORIZONTAL;
		gridB.setConstraints(p2, gridC);
		getContentPane().add(p2);
			
		
		//Left
		gridC.gridx = 0;
		gridC.gridy = 1;
		gridC.gridwidth = 1;
		gridC.gridheight = 1;
		gridC.weightx  = 10;
		gridC.weighty = 10;
		gridC.ipadx = 150;
		gridC.insets = new Insets(4,2,2,0);
		gridC.anchor = GridBagConstraints.NORTHWEST;
		gridC.fill = GridBagConstraints.VERTICAL;
		gridB.setConstraints(p1, gridC);
		getContentPane().add(p1);

		
		//Content
		gridC.gridx = 1;
		gridC.gridy = 1;
		gridC.gridwidth = 1;
		gridC.gridheight = 1;
		gridC.weightx  = 1000;
		gridC.weighty = 1000;
		gridC.insets = new Insets(4,2,2,2);
		gridC.anchor = GridBagConstraints.NORTHWEST;
		gridC.fill = GridBagConstraints.BOTH;
		gridB.setConstraints(p3, gridC);
		getContentPane().add(p3);

		pack();
		}
 
Hmm, ich kenn mich mit dem BorderLayout nicht ganz so aus aber ich würde sagen, du solltest lieber das TableLayout verwenden (musst du eventuell aus dem I-net noch runterladen).
 
@Matze
Das ist nicht das Borderlayout. Er/Sie hat jetzt das Gridbag-Layout genommen.

@jackisback
Ich schau mir das nachher mal an.

MFG

Sascha
 
Zurück