SWT Fenster erzeugt neues SWT Fenster

L

Loro

Hallo alle zusammen,

ich habe Folgendes Problem, ich möchte ein ein SWT Fenster erstellen
bzw. habe ich das schon, in dem Benutzername /-Passwort angegeben werde
und eine Server IP Adresse.
Nach dem die alle Eingaben gemacht wurden, soll nach dem klick auf den OK-Button
das aktuelle Fenster geschlossen werden und ein neues Fenster geöffnet werden
dem die oben genanten Variablen übergeben werden, mein Problem ist, das ich nicht weis
wie ich das zweite Fenster erstellen...

hier ist mal der Code den ich erstellt habe:
Code:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.*;

public class Client {
	
		private Text user;
		private Text ip;
		private Text port;
		private Button ok;
	
		Client(){
			final Display display = new Display();
			
			//option-Window
			final Shell optshell = new Shell(display);
				optshell.setText("Optionen");
				optshell.setLayout(new FillLayout());
				TabFolder folder = new TabFolder(optshell, SWT.NONE);
				TabItem userpage = new TabItem(folder, SWT.NONE);
				userpage.setText("Benutzer");
				{
					Composite compuser = new Composite(folder, SWT.NONE);
					userpage.setControl(compuser);
					compuser.setLayout(null);
					
					Label userlabel = new Label(compuser, SWT.NONE);
					userlabel.setText("User");
					//(x,y, hoehe, breite);
					userlabel.setBounds(10,10, 60,20);
					
					Label passwordlabel = new Label(compuser, SWT.NONE);
					passwordlabel.setText("Passwort");
					passwordlabel.setBounds(10, 30, 60, 20);
					
					user = new Text(compuser, SWT.NONE);
					user.setBounds(70,10, 75,15);
					
					Text paswd = new Text(compuser, SWT.NONE);
					paswd.setBounds(70, 30, 75, 15);
						
					ok = new Button(compuser, SWT.PUSH);
					ok.setText("OK");
					ok.setBounds(50, 50, 45, 20);					
				}	
				
				
				TabItem serverpage = new TabItem(folder, SWT.NONE);
				serverpage.setText("Server");
				{	
					Composite compserver = new Composite(folder, SWT.NONE);
					serverpage.setControl(compserver);
					compserver.setLayout(null);
					{
						Label serverlabel = new Label(compserver, SWT.NONE);
						serverlabel.setText("Server IP");
						serverlabel.setBounds(10,10, 60,20);
						
						Label portlabel = new Label(compserver, SWT.NONE);
						portlabel.setText("Port");
						portlabel.setBounds(10, 30, 60, 20);
						
						ip = new Text(compserver, SWT.NONE);
						ip.setText("192.168.0.2");
						ip.setBounds(70,10, 75,15);
						
						port = new Text(compserver, SWT.NONE);
						port.setText("4000");
						port.setBounds(70, 30, 75, 15);

					}
				}
				folder.setBounds(200,200,200,200);
				
				optshell.open();
				optshell.setBounds(100, 100, 180, 160);

				ok.addSelectionListener(new SelectionAdapter(){
					public void widgetSelected(SelectionEvent e){	
						if(user.getText().equals(""))
							System.out.println("Fehler");
						else{				 
						 	System.out.println("NASE");	
                                                               //Hier Sollte nun das neue Fenster kommen
						 	Test test = new Test();
						 	optshell.dispose();			 	
						 	display.close();
						}}});
		
				while(!optshell.isDisposed())
					if(!display.readAndDispatch())
						display.sleep();
		}
}

Schon mal vielen Dank fuer die Mühe vor ab
 
Hallo!

Schau mal hier:
Code:
/*
 * Created on 26.12.2004
 *
 */
package de.tutorials;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

/**
 * @author Administrator
 * 
 */
public class MultiWindowTest {

	private boolean finish = false;

	private Display display;

	private Shell shell;

	public static void main(String[] args) {
		new MultiWindowTest().doIt();

	}

	/**
	 * 
	 */
	private void doIt() {
		display = new Display();
		shell = new Shell(display);

		shell.setText("MainShell");
		shell.setLayout(new GridLayout(2, false));

		Label label = new Label(shell, SWT.NONE);
		label.setText("Text:");

		final Text text = new Text(shell, SWT.NONE);
		text.setText("abc");

		Button btn = new Button(shell, SWT.PUSH);
		btn.setText("push me");
		btn.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				Shell newShell = new Shell(display);
				newShell.setText("newShell");
				newShell.setLayout(new GridLayout(2, false));

				Label label = new Label(newShell, SWT.NONE);
				label.setText("Text:");

				Text newText = new Text(newShell, SWT.NONE);
				newText.setText(text.getText());

				newShell.pack();
				newShell.open();

				newShell.addListener(SWT.CLOSE, new Listener() {

					public void handleEvent(Event event) {
						finish = true;
					}
				});

				shell.dispose();

			}
		});

		shell.pack();
		shell.open();

		while (!finish) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}

	}
}

Gruß Tom
 

Neue Beiträge

Zurück