# Button Funktion zuweisen



## Rave (29. Aug 2009)

Hallöchen,

Wie kann ich, wenn ich einen Button in einem JFrame habe, durch klicken des Buttons in einen anderem Frame wechseln ??? 

Hab mir ein paar Beispiele angeguckt aber ich komm da nich so ganz hinter !??


----------



## Landei (29. Aug 2009)

Du musst natürlich irgendwo eine Referenz auf das andere Frame haben. Dann kannst du an den Button einen Actionlistener anhängen. Angenommen, das andere Fenster muss geöffnet werden:


```
JButton myButton = new JButton("Klick me!");
... Button in GUI einfügen ....
meinButton.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent ae) {
       anderesFenster.setVisible(true); 
   }
});
```

Ist es schon offen, muss man stattdessen requestFocus oder so aufrufen. Falls du das eigene Fenster schließen willst, geht das mit setVisible(false), allerdings sollte dann nicht setDefalutClosingOperation(EXIT_ON_CLOSE) gesetzt sein.

Das ist alles etwas vage, beschreibe genauer, was passieren soll, und poste das relevante Code-Stückchen, falls das hier noch nicht weiterhilft.


----------



## mmz (30. Aug 2009)

Landei hat gesagt.:


> ```
> JButton myButton = new JButton("Klick me!");
> ... Button in GUI einfügen ....
> meinButton.addActionListener(new ActionListener(){
> ...


Nur der Vollständigkeit halber : sollte das andere Fenster nicht global sein, dann kannst Du es auch mit 

```
new AnderesFenster().setVisible(true); // Namen des Konstruktors und Parameter natürlich anpassen
```
aufrufen. So natürlich nur, wenn es nur einmal gebraucht wird. Ansonsten global bekannt machen und nur setVisible(...) aufrufen.

Wie Landei schon sagte, mehr Infos...sonst wirds nur gerate.

Wenn kein setDefalutClosingOperation(EXIT_ON_CLOSE) auf dem neuen Frame oder ... aufgerufen wird kannst Du die Anzeige über 

```
frame.dispose(); // Deine Component
```
schließen. Deine Anwendung läuft weiter, aber die Component wird geschlossen.


----------

