SWT Lösen mit Shell, Container oder Group?

Status
Nicht offen für weitere Antworten.

SmartGuy

Mitglied
Hey Leute, ich möchte folgendes Grundgerüst realisieren:
startfenster.png


Das Fenster soll dynamisch vergrößerbar sein, sodass z.b. die Textboxen sich mitvergrößern. Hab bis jetzt folgenden Code. Dort ist sozusagen die linke Seite. Bräuchte jetzt noch die rechte Seite, aber wie integrier ich das?

Java:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class Startfenster{
	Text ueberblick, chatfenster, eingabe;
	Button chateingabe, senden, neuesSpiel, rundruf, lobby;
	
    public static void main(String[] args) {
        
    	Display display = new Display();
    	Shell shell = new Startfenster().createShell(display);
    	//shell.setSize(width, height);
    	shell.open();
    	
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
    }
    
    public Shell createShell(final Display display){
		final Shell shell = new Shell(display);
		shell.setText("Startfenster");
		GridLayout gridLayout = new GridLayout();
		gridLayout.numColumns = 2;
		shell.setLayout(gridLayout);
		
		ueberblick = new Text(shell, SWT.BORDER |  SWT.V_SCROLL|SWT.READ_ONLY);
		GridData gridData2 = new GridData(GridData.FILL, GridData.CENTER, true, true);
		gridData2.widthHint = 600; 
		gridData2.heightHint = 200;
		gridData2.horizontalSpan = 2;
		gridData2.grabExcessVerticalSpace = true;
		gridData2.horizontalAlignment = GridData.FILL;
		gridData2.verticalAlignment = GridData.FILL;
		gridData2.grabExcessHorizontalSpace = true;
		ueberblick.setText("Ueberblick der Tische");
		ueberblick.setLayoutData(gridData2);
		
		chatfenster= new Text(shell, SWT.BORDER  | SWT.V_SCROLL|SWT.READ_ONLY);
		GridData gridData3 = new GridData(GridData.FILL, GridData.CENTER, true, true);
		gridData3.widthHint = 300; 
		gridData3.heightHint = 50;
		gridData3.horizontalSpan = 2;
		gridData3.grabExcessVerticalSpace = true;
		gridData3.horizontalAlignment = GridData.FILL;
		gridData3.verticalAlignment = GridData.FILL;
		gridData3.grabExcessHorizontalSpace = true;
		chatfenster.setText("laber laber laber");
		chatfenster.setLayoutData(gridData3);
		
		Text eingabe = new Text(shell, SWT.BORDER); //BORDER, H_SCROLL, V_SCROLL, MULTI,SINGLE, READ_ONLY and WRAP
		GridData gridData4 = new GridData(GridData.FILL, GridData.CENTER, true, true);
		gridData4.widthHint = 300; 
		gridData4.heightHint = 50;
		eingabe.setText("Eingabe");
		gridData4.horizontalSpan = 1;
		gridData4.widthHint = 260; 
		gridData4.heightHint = 20;
		eingabe.setTextLimit(30);//max Anzahl an Zeichen
		eingabe.setLayoutData(gridData4);
		
		senden = new Button(shell, SWT.PUSH);
		//gridData4.widthHint = 30; 
		senden.setText("senden");
		senden.setLayoutData(new GridData(GridData.END));

    	shell.addDisposeListener(new DisposeListener() {
			public void widgetDisposed(DisposeEvent arg0) {		
			}			
		});
    	shell.pack();
    	return shell;	
    }  	
}
 

Wildcard

Top Contributor
Mach doch rechts einfach noch ein Composite mit GridLayout. Die GridData sind wohl für alles horizontal SWT.FILL und für die List horizontal und vertikal fill und horizontal grab. Übrigens: benutz die GridDataFactory, damit ist das wesentlich einfacher.
 

SmartGuy

Mitglied
Hab das nun mit zwei Composites gemacht.
2 Probleme:
  1. mit .setBounds krieg ich die beiden Composites iwie nicht nebeneinander
  2. wenn ich das Fenster vergrößere sollen sich ja die Textfelder aus Composite textfelder mitvergrößern. Iwie klappt das auch nicht, obwohl ich die widgets so eingestellt hab

der code:
Java:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class Startfenster{
	Text ueberblick, chatfenster, eingabe;
	Button chateingabe, senden, neuesSpiel, rundruf, lobby;
	
    public static void main(String[] args) {
        
    	Display display = new Display();
    	Shell shell = new Startfenster().createShell(display);
    	shell.setSize(600, 400);
    	shell.open();
		
                 while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
    }
    
    public Shell createShell(final Display display){
		final Shell shell = new Shell(display);
		shell.setText("Startfenster");
		GridLayout gridLayout = new GridLayout();
		gridLayout.numColumns = 1;
		shell.setLayout(gridLayout);
    	
		Composite textfelder = new Composite(shell,SWT.BORDER);//BORDER, H_SCROLL and V_SCROLL
		GridLayout grid2 = new GridLayout();
		grid2.numColumns =2; 
		textfelder.setLayout(grid2);
		//textfelder.setBounds(10,10,380,240);
		
		ueberblick = new Text(textfelder, SWT.BORDER |  SWT.V_SCROLL|SWT.READ_ONLY);
		GridData gridData2 = new GridData(GridData.FILL, GridData.CENTER, true, true);
		gridData2.widthHint = 600; 
		gridData2.heightHint = 200;
		gridData2.horizontalSpan = 2;
		gridData2.grabExcessVerticalSpace = true;
		gridData2.horizontalAlignment = GridData.FILL;
		gridData2.verticalAlignment = GridData.FILL;
		gridData2.grabExcessHorizontalSpace = true;
		ueberblick.setText("Ueberblick der Tische");
		ueberblick.setLayoutData(gridData2);
		
		chatfenster= new Text(textfelder, SWT.BORDER  | SWT.V_SCROLL|SWT.READ_ONLY);
		GridData gridData3 = new GridData(GridData.FILL, GridData.CENTER, true, true);
		gridData3.widthHint = 300; 
		gridData3.heightHint = 50;
		gridData3.horizontalSpan = 2;
		gridData3.grabExcessVerticalSpace = true;
		gridData3.horizontalAlignment = GridData.FILL;
		gridData3.verticalAlignment = GridData.FILL;
		gridData3.grabExcessHorizontalSpace = true;
		chatfenster.setText("laber laber laber");
		chatfenster.setLayoutData(gridData3);
		
		Text eingabe = new Text(textfelder, SWT.BORDER); //BORDER, H_SCROLL, V_SCROLL, MULTI,SINGLE, READ_ONLY and WRAP
		GridData gridData4 = new GridData(GridData.FILL, GridData.CENTER, true, true);
		gridData4.widthHint = 300; 
		gridData4.heightHint = 50;
		eingabe.setText("Eingabe");
		gridData4.horizontalSpan = 1;
		gridData4.widthHint = 260; 
		gridData4.heightHint = 20;
		eingabe.setTextLimit(30);//max Anzahl an Zeichen
		eingabe.setLayoutData(gridData4);
		
		senden = new Button(textfelder, SWT.PUSH);
		//gridData4.widthHint = 30; 
		senden.setText("senden");
		senden.setLayoutData(new GridData(GridData.END));
    	
		Composite rest = new Composite(shell,SWT.BORDER);//BORDER, H_SCROLL and V_SCROLL
		GridLayout grid1 = new GridLayout();
		grid1.numColumns = 1;
		rest.setLayout(grid1);
		//rest.setBounds(400,10,380,240);
		Label label11 = new Label(rest, SWT.NONE);
		label11.setText("Name:");
		GridData data = new GridData();
		label11.setLayoutData(data);
		
    	shell.addDisposeListener(new DisposeListener() {
			public void widgetDisposed(DisposeEvent arg0) {		
			}			
		});	
    	shell.pack();
    	return shell;
    }    	
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Swing Formular mit mehreren Elementen - wie die ActionListener-Verarbeitung lösen? AWT, Swing, JavaFX & SWT 2
Eldorado Swing JGoodies Binding: Bindung lösen AWT, Swing, JavaFX & SWT 3
A JToolbar lässt sich aus dem Fenster lösen AWT, Swing, JavaFX & SWT 2
B JProgressBar: wie muss ich das lösen? AWT, Swing, JavaFX & SWT 4
G Probleme beim Lösen einer Übungsaufgabe AWT, Swing, JavaFX & SWT 5
T Setzen von der Schriftgröße bei einem Shell AWT, Swing, JavaFX & SWT 15
T Shell entwickeln AWT, Swing, JavaFX & SWT 6
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
W SWT keybinding ESC bzw. [x] bei Shell (modal) AWT, Swing, JavaFX & SWT 2
W SWT, Shell - setMaximumSize AWT, Swing, JavaFX & SWT 2
lumo SWT Shell größe ändern... AWT, Swing, JavaFX & SWT 4
lumo SWT Shell & Menu AWT, Swing, JavaFX & SWT 2
H shell in view implementieren; menu mit keystroke unterlegen AWT, Swing, JavaFX & SWT 8
hdi SWT Zwei mal Shell öffnen = Exception AWT, Swing, JavaFX & SWT 6
HaukeG SWT Grundsätzliches über Composites, Shell und Displays AWT, Swing, JavaFX & SWT 2
C SWT Shell update probleme - Mausbewegung nötig AWT, Swing, JavaFX & SWT 2
hdi SWT Shell: Auslagerung von Code verändert Verhalten AWT, Swing, JavaFX & SWT 6
M SWT Mutter-Shell blocken während Tochter-Shell noch offen ist AWT, Swing, JavaFX & SWT 6
E NoClassDefFoundError beim Starten einer Shell AWT, Swing, JavaFX & SWT 3
M Shell vs. Composite AWT, Swing, JavaFX & SWT 3
V [SWT] Shell transparenz AWT, Swing, JavaFX & SWT 3
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
U Maximieren für SWT Shell unterbinden AWT, Swing, JavaFX & SWT 2
B SWT-Shell in den Vordergrund bringen AWT, Swing, JavaFX & SWT 2
T SWT - Inhalt einer Shell erst nach Größenänderung vorhanden AWT, Swing, JavaFX & SWT 5
C ApplicationWindow Shell minimieren (Anderes Event ausführen) AWT, Swing, JavaFX & SWT 4
I Shell aus einer Plugin-View öffnen . AWT, Swing, JavaFX & SWT 4
Z MessageBox ohne Shell öffnen - SWT AWT, Swing, JavaFX & SWT 7
P Icongröße von SystemIcons (aus shell) verändern?! AWT, Swing, JavaFX & SWT 3
Z Random Butten erstellen ohne Container AWT, Swing, JavaFX & SWT 15
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
H Aus Array Container Panel an Tabbedpane zuweisen AWT, Swing, JavaFX & SWT 29
W JavaFX Tabelle zeilenweise mit Werten füllen und an Container anpassen AWT, Swing, JavaFX & SWT 23
B Swing KeyListener auf Container? AWT, Swing, JavaFX & SWT 1
I CSS - backgroundImage - Größe automatisch an den Container anpassen AWT, Swing, JavaFX & SWT 1
A Swing Externe Klassen aufrufen und in einem bereits vorhandenen Container einfügen AWT, Swing, JavaFX & SWT 0
C Componente in Container (inkl. "Untercontainer") suchen und zurückgeben AWT, Swing, JavaFX & SWT 3
B JTextArea Größe an Container anpassen AWT, Swing, JavaFX & SWT 2
Z Swing JPanel soll größer werden als Parent Container (überlappen) AWT, Swing, JavaFX & SWT 5
H Drag-Evente nach Container wechsel AWT, Swing, JavaFX & SWT 2
J Fehlermeldung adding a window to a container AWT, Swing, JavaFX & SWT 9
S JPanel in den Container hinzufügen AWT, Swing, JavaFX & SWT 3
xehpuk Swing Erst Components, dann Container zeichnen AWT, Swing, JavaFX & SWT 2
K Container AWT, Swing, JavaFX & SWT 14
K JFrame-Größe an inneren Container anpassen AWT, Swing, JavaFX & SWT 2
J Swing Container innerhalb eines JPanels erfragen AWT, Swing, JavaFX & SWT 3
W setEnabled in Container Objekten (JScrollPane) AWT, Swing, JavaFX & SWT 5
X Instanzieren und Zuweisen vom BorderLayout an Container nicht notwendig ? AWT, Swing, JavaFX & SWT 4
B JPG in einem Container anzeigen lassen AWT, Swing, JavaFX & SWT 3
S this-Zugriff auf Container höherer Ebene AWT, Swing, JavaFX & SWT 2
P DragAndDrop zw Component und Container AWT, Swing, JavaFX & SWT 4
D Container des JFrame zeichnet sich nicht bei Aufruf von paintAll AWT, Swing, JavaFX & SWT 9
T Exception: Adding a window to a container AWT, Swing, JavaFX & SWT 14
D Container vor Fullscreen AWT, Swing, JavaFX & SWT 5
R Container Size Problem AWT, Swing, JavaFX & SWT 5
hdi Verständnisfrage: Container vs. Component AWT, Swing, JavaFX & SWT 3
I Container AWT, Swing, JavaFX & SWT 6
G MouseEvents an Container weiterleiten AWT, Swing, JavaFX & SWT 8
H Benachrichtigt werden wann ein Container repainted wird? AWT, Swing, JavaFX & SWT 5
G Graphics Objekte in AWT Container einfügen AWT, Swing, JavaFX & SWT 2
A MouseEvent auf Container bzw. Frame weiterleiten AWT, Swing, JavaFX & SWT 5
S Mehrere Container AWT, Swing, JavaFX & SWT 10
T Canvas gegen Container austauschen --> GUI fehlt AWT, Swing, JavaFX & SWT 4
M Container in Frame über Button einfügen? AWT, Swing, JavaFX & SWT 4
A Container AWT, Swing, JavaFX & SWT 8
G Durchsichtiger verschiebbarer Container gesucht AWT, Swing, JavaFX & SWT 6
G problem mit anzeigen eines geänderten Container AWT, Swing, JavaFX & SWT 2
S Kann JSP mit BI nicht zum Container hinzufügen AWT, Swing, JavaFX & SWT 7
G hintergrund von JFrame/Container transparent machen AWT, Swing, JavaFX & SWT 2
C JPanel oder Container in JPanel AWT, Swing, JavaFX & SWT 2
X Container aus FocusCycle entfernen AWT, Swing, JavaFX & SWT 2
B Container aus einen andere Klasse hinbekommen ? AWT, Swing, JavaFX & SWT 5
R Component aus Container entfernen bzw. austauschen. AWT, Swing, JavaFX & SWT 6
I Hintergrundbild bei awt container AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben