SWT Layout Problem

Aldimann

Bekanntes Mitglied
Hi,

erstmal zur beschreibung wie es momentan ist:

Shell hat ein Gridlayout mit momentan 6 columns (War eher Testweise eigentlich reichen 3)

Auf der shell sollte der rechte Teil (Maincomp) 2/3 circa einnehmen. der Linke Teil (2 Comps das eine Top das andere Bottom)

Bei denk beiden Linken wurde folgendene GridData gesetzt:
Java:
		GridData gridDataTopComp = new GridData();
		gridDataTopComp.grabExcessVerticalSpace = true;
		gridDataTopComp.horizontalAlignment = SWT.FILL;
		gridDataTopComp.verticalAlignment = SWT.FILL;

Das maincomp hat folgende GridData gesetzt bekommen:

Java:
		GridData gridDataTabFolder = new GridData();
		gridDataTabFolder.grabExcessHorizontalSpace = true;
		gridDataTabFolder.grabExcessVerticalSpace = true;
		gridDataTabFolder.horizontalSpan = 2;
		gridDataTabFolder.horizontalAlignment = SWT.FILL;
		gridDataTabFolder.verticalAlignment = SWT.FILL;



Problem ist jetzt, dass die beiden Linken von der Breite her einfach zu klein sind und ich Sie gern ein Stück größer hätte.

Hab schon ein wenig rumexperimentiert aber kam nicht zu dem gewünschten Ergebnis :/

hat jemand ne Idee?

Vielen Dank schonmal!
 
Problem ist jetzt, dass die beiden Linken von der Breite her einfach zu klein sind und ich Sie gern ein Stück größer hätte.

Hab schon ein wenig rumexperimentiert aber kam nicht zu dem gewünschten Ergebnis :/

hat jemand ne Idee?


Anscheinend nicht 🙂. Aber eigentlich ist es fast mit jedem Layout möglich, muss man halt genau wissen was man tut. Wobei bei TableLayout alles intuitiv und selbstverständlich, vorausgesetzt man hat den Entwurf erstmal auf Papier ...
 
Welches TableLayout meinst du denn?? Ich kenn kein TableLayout für SWT...
Aber wie gesagt das GridLayout kann alles und ist auch einfach...
 
Hab ein bißchen mit dme Span rumgespielt, aber das Ergebnis ist alles in allem das gleiche wie mit der GridData

Hier das KSKB:

Java:
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;

public class TestLayout {

	public static void main(String[] args) {
		new TestLayout();
	}

	public TestLayout() {
		
		Display display = new Display();
		Shell shell = new Shell(display);
		GridLayout gridLayout = new GridLayout();
		gridLayout.numColumns = 3;
		shell.setLayout(gridLayout);

		

		Composite leftSideComp = new Composite(shell, SWT.NONE);
		leftSideComp.setLayout(new GridLayout(1,false));
		
		GridDataFactory.fillDefaults().grab(false, true).span(2, 1).applyTo(leftSideComp);
		
		Composite topComp = new Composite(leftSideComp, SWT.BORDER);
		//topComp.setLayoutData(gridData);
		topComp.setBackground(new Color(null, new RGB(255, 255, 255)));

		GridDataFactory.fillDefaults().grab(false, true).applyTo(topComp);
		
		
		Composite bottomComp = new Composite(leftSideComp, SWT.BORDER);
//		bottomComp.setLayoutData(gridData);
		GridDataFactory.fillDefaults().grab(true, true).applyTo(bottomComp);
		
		GridData gridDataTabFolder = new GridData();
		gridDataTabFolder.grabExcessHorizontalSpace = true;
		gridDataTabFolder.grabExcessVerticalSpace = true;
		gridDataTabFolder.horizontalSpan = 2;
		gridDataTabFolder.horizontalAlignment = SWT.FILL;
		gridDataTabFolder.verticalAlignment = SWT.FILL;

		TabFolder tabFolder = new TabFolder(shell, SWT.None);
		GridDataFactory.fillDefaults().grab(true, true).span(2, 6).applyTo(tabFolder);
		

		
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}
}



so sieht momentan Layoutmäßig meine Shell aus
 
Zuletzt bearbeitet:
Ja immer das gleiche mit den vielen unbrauchbaren Layouts. Zieh dir mal GridBagLayout rein. Das ist zwar das Komplizierteste das es gibt aber mit Abstand das Beste. Mit dem Layout löst du alle Probleme :toll:
 
Ne das hab ich nicht mitbekommen. Habs auch nur so überflogen. Na dann viel Spass mit SWT 😀 Ein richtiger Programmier benutzt sowas doch nicht :lol: Machs lieber mit Swing und AWT. Man kann sich das Leben auch selber schwer machen :bahnhof:
 
Ne das hab ich nicht mitbekommen. Habs auch nur so überflogen. Na dann viel Spass mit SWT 😀 Ein richtiger Programmier benutzt sowas doch nicht :lol: Machs lieber mit Swing und AWT. Man kann sich das Leben auch selber schwer machen :bahnhof:

Ich find swing nicht so pralle. Schon allein vom aussehen her, nicht nur das mir das auftreten von Swing nur begrenzt gefällt, es sticht auch noch total heraus weil es im gegensatz zu allen anderen Programmen auch ganz anders aussieht.

Und in vielen fällen ist SWT afiak schneller, außer es muss Componenten emulieren.

Ehrlich gesagt versteh ich nicht warum du so viele Swing nutzen....

@SirWayne:

Hast du ne Lösung für mein Problem? ich verzweifel langsam!
 
Ich find swing nicht so pralle. Schon allein vom aussehen her, nicht nur das mir das auftreten von Swing nur begrenzt gefällt, es sticht auch noch total heraus weil es im gegensatz zu allen anderen Programmen auch ganz anders aussieht.

Und in vielen fällen ist SWT afiak schneller, außer es muss Componenten emulieren.

Ehrlich gesagt versteh ich nicht warum du so viele Swing nutzen....
/QUOTE]

Das ist genau so Schwachsinn!!!! Bei Swing kannst du das System L&F verwenden dann sieht es genau gleich aus....
 
Dann bleibt immernoch das Performance problem.

Ich will hier keine SWT & Swing Diskussion sondern eher das oben genannte Problem lösen.
 

Zurück
Oben