# Mehrere Fenster mit Swing



## awtSwing (25. Jun 2005)

Hi,

ich programmiere zur Zeit mit Swing und würde gerne wissen, wie ich zu einem zweiten Fesnter wechseln kann.
Alos ich habe mit JFrame ein Fesnter mit einem Button, und jetzt möchte ich, dass bei Druck auf den Button, das Fenster wechsel, also dass ein neues Fenster erscheint. Wie könnte ich das realisieren, also was muss ich in den ActionListener schreiben?


----------



## L-ectron-X (25. Jun 2005)

Dazu brauchst du mindestens eine zweite Klasse die von JFrame oder von JDialog erbt.
In der actionPerformed()-Methode kann dann etwas stehen wie:

```
private MeinDialog md;
...
...
public void actionPerformed(ActionEvent e) {
  Object source = e.getSource();
  if(source == meinButton) {
    md = new MeinDialog();
    md.setVisible(true);
  }
}
```
Was letztendlich wirklich in die Methode hinein muss hängt auch vom Design deiner zweiten Klasse ab.


----------



## awtSwing (25. Jun 2005)

Danke für deine Antwort L-ectron-X!

Ich würde gern die GUI so funktionieren lassen, dass man nachher wie bei einem Installationmenü "weiter" und "zurück " schalten kann.  Also das man bei "weiter" in das nächste Fenster kommt, und bei "zurück" wieder zurück.



```
public void actionPerformed(ActionEvent e) {
				Object source = e.getSource(); 
				  if(source == button1) { 
					Frame Texteingabe = new Frame("Texteingabe");
								Texteingabe.setSize(300,100);
								Texteingabe.setLocation(200,200);
								TextField eingabe = new TextField("Text hier eingeben:", 30);
								Texteingabe.add(eingabe);
								Texteingabe.show();}
```


Ich habe das jetzt so gemach, aber wenn ich auf den button1 drücke öffnet sich ein ganz neues Fenster. Ich würde es aber gerne so machen, dass das aktuelle Fenster einfach wechselt, also wie bei den üblichen Installationsmenüs.


----------



## Roar (25. Jun 2005)

benutz bite die suchfunktion, z.b. such nach CardLayout o.Ä. hier gibts auch schönes tutorial: http://java.sun.com/developer/technicalArticles/GUI/swing/wizard/


----------



## Guest (25. Jun 2005)

Danke für deine Hilfe Roar!


----------



## Guest (25. Jun 2005)

Mit dem wizard ist das etwas zu komplex. Die Suchfunkiton habe ich schon lang benutzt, aber nichts gefunden.
Es würde mir schon reichen, wenn ich bei Druck auf einen Button, zu einem neuen Fenster gewechselt wird.


----------



## Roar (25. Jun 2005)

Anonymous hat gesagt.:
			
		

> Es würde mir schon reichen, wenn ich bei Druck auf einen Button, zu einem neuen Fenster gewechselt wird.



warum willst du immer neue fenster haben??
einfach das alte panel entfernen (remove()) udn das neue hinzufügen (add())


----------



## Guest (25. Jun 2005)

Hier ist meine Quellcode. Wie soll ich das realisieren mit remove() und add()?

Was muss nach if (source== text1) folgen?


```
public class DatenbankGUI extends JFrame {
	
		
	
	 DatenbankGUI()
	{
		
		
			final eingabe m = new eingabe();
		
				 
				 
				//Conainer c = getContentPane();
				getContentPane().setLayout(null);
		final JButton text1 = new JButton ("Button");
				
				text1.setBackground(Color.RED);
		text1.setBounds(100,40,100,20);
		getContentPane().add(text1);
		
		
		ActionListener ActionButton = new ActionListener (){

			public void actionPerformed(ActionEvent e) {
				Object source = e.getSource(); 
				  if(source == text1) { 
					??????????????????????
				
			}

			
			
			
			
			
			
			
			
		};
		
		
		text1.addActionListener(ActionButton);
		
	}
		
		
		
		
	public static void main(String[] args) {
		DatenbankGUI r = new DatenbankGUI();
		
			
		
	
			
						
		r.setSize(700,700);
		r.setLocation(0,0);
		
		r.setTitle("DatenbankGUI");
		r.setBackground(Color.BLACK);
		
		r.setResizable(false);
		
		
		r.show();
		
		
	}
}
```


----------

