Layout wieder herstellen

Utopist

Grünschnabel
Hi!

Mein erster Post in diesem Forum ist leider schon eine Frage, hoffe das der nächste dies nicht sein wird / muss...

Ich hab mit Swing eine GUI für ein Programm erstellt, nun möchte ich gerne, dass
wenn ich das Fenster vergrößer / verkleiner, mein Layout wieder hergestellt wird.
So hab ich z.B. in der Mitte des gesamten JFrames ein JSplitPane und nach dem Verändern der Fenstergröße ist dies nicht mehr in der Mitte. Als LayoutManager benutze ich GridBagLayout.

Hab schon gegoogelt, verschiedene Foren durchforstet nur irgendwie find ichs nicht. Wär toll, wenn mir jemand helfen könnte.

Danke
-Utopist
 
Hm, klingt komisch, könnte aber davon abhängen, wie Du das GridBagLayout benutzt. Auch hier wäre der relevante Code interessant.
 
Nun, ich will eigentlich bloß das Layout wieder neu aufbauen, wenn das Fenster
vergrößert oder verkleinert wird. Ich dachte schon an sowas wie repaint() mit nem ComponentListener oder sowas in der Art, obwohl ich dazu noch nix gefunden hab.

Also ich hab eine Klasse DividerComponent (erbt von JPanel), die besteht aus folgendem:

Code:
DarstellungsTabelle table;   //extends JTable
JScrollPane fileView;
PartitionDropDownMenu partitionDrop;
JLabel VerzeichnisLabel;
GridBagLayout layout;

Soweit so, gut, das Ding ist per GridBag angeordnet.

Diese Komponente füge ich folgendermassen ein:

Code:
                         /* Layout fürs Fenster*/
		gbl = new GridBagLayout();
		this.getContentPane().setLayout(gbl);
		
		/*Die beiden Darstellungen links und rechts werden erzeugt*/
		leftComponent = new DividerComponent(linkerBaum.getDatenAlsTabelle(),linkerBaum.getPath());
		rightComponent = new DividerComponent(rechterBaum.getDatenAlsTabelle(),rechterBaum.getPath());		

		/*Die Teilung des Fensters wird herbeigeführt, HORIZONTAL_SPLIT bedeutet das das Fenster
		 * horizontal geteilt wird, false als nächster Parameter bestimmt, das die beiden Components
		 * links und rechts beim Verscheiben des Sliders nicht neu gezeichnet werden
		 */
		trenner = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false);
						
		/*Fügt die beiden Elemente links und rechts auf das SplitPane*/
		trenner.setLeftComponent(leftComponent);
		trenner.setRightComponent(rightComponent);
		
		
		/*setzt die Grösse des Trennbalkens*/
		trenner.setDividerSize(5);
		/*Ein Rand wird um das SplitPane gezeichnet*/
		trenner.setBorder(new EmptyBorder(5,5,5,5));
		
		/*Ermittelt die Grösse des Frames und setzt den Divider in die Mitte*/
		Dimension d = this.getSize();
		trenner.setDividerLocation((int)d.getWidth()/2);
		
		/*Die Buttonleiste am unteren Rand des Fensters, zur Zeit mit testInhalt*/
		String[] inh = {"","","","","","","","","","","","Verlassen"};
		Buttons buttonleiste = new Buttons(inh);
				
		//Elemente auf das RootPane packen
		//(frame,Grid Back Layout,Object,Spalte,Zeile,Spalten binden,Zeilen binden,Skalierung Höhe,Skalierung Breite);
		addComponent(this,gbl,trenner,1,1,4,1,1,1);
		addComponent(this,gbl,buttonleiste,1,5,2,2,0,0);

Die Methode addComponent fügt die Elemente in des GBL ein. Will die mir mal sparen, um nicht zuviel Code hierhinein zu posten.

Ich hoffe das hilft weiter damit du/ihr mir weiterhelfen könnt.

Gruß,
-Utopist
 

Neue Beiträge

Zurück