# Exit-Button



## assault (5. Jun 2008)

Hi versuche gerade einen exit button für meine gui zusammen zu basteln.
habe mich vom code her, an dem sun beispiel hier orientiert:

http://java.sun.com/docs/books/tutorial/uiswing/components/button.html

mein code sieht so aus: 

```
Exit = new JButton();
		Exit.setActionCommand("exit");
		Exit.setMnemonic(KeyEvent.VK_E);
		Exit.setText("Exit");
	    }
	    
	    Exit.addActionListener(this);
	    Exit.addActionListener(this);

	    Exit.setToolTipText("Click this button to Exit");

	    public void actionPerformed(ActionEvent e) {
		    if("disable".equals(e.getActionCommand())){
			System.exit(0);}}
```

und ich bekommen den Fehler :



> The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the
> arguments (Gui_v2)



hätte jemand ne idee wie ich ihn zum laufen bekomme oder hätte vielleicht  jemand sogar nen Beispielcode für mich?


----------



## Marco13 (5. Jun 2008)

Abgesehen von der Frage, wo da welche { und welche } steht:
class DieKlasseWoDasAllesDringsteht *implements ActionListener*
Ein anonymer ActionListener wäre vmtl. angebrachter -> Siehe beliebiges Lehrbuch.


----------



## SlaterB (5. Jun 2008)

Gui_v2 implementiert nicht das Interface ActionListener

Beispiel: das Internet wenn du nach JButton und ActionListener suchst,
hätte jetzt fast schon 
http://java.sun.com/docs/books/tutorial/uiswing/components/button.html 
gepostet, aber doll siehst da nicht mit Beispielen aus und nun sehe ich, dass du das schon kennst


----------



## lhein (5. Jun 2008)

und ganz vom fehlenden implements... abgesehen...


```
Exit.addActionListener(this);
```

reicht einmalig...kein Grund, das mehrfach zu tun.

Und bitte haltet euch an Programmierkonventionen....Klassennamen fangen mit Großbuchstaben an, Variablennamen mit Kleinbuchstaben...


----------



## assault (5. Jun 2008)

hab nochmal nach nem beispiel gesucht und das hier gefunden


```
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;

public class Gui_v2 extends JPanel {
    public Gui_v2() {
	super(new BorderLayout());

	JPanel p; // group west buttons
	add(p = new JPanel(new GridLayout(2, 1, 10, 10)), BorderLayout.WEST);
	p.add(new JButton("NW"));
	p.add(new JButton("SW"));

	JButton b;
	add(b = new JButton("Quit"), BorderLayout.EAST);

	b.addActionListener(new ActionListener() {
	    public void actionPerformed(ActionEvent e) {
		System.exit(0);
	    }
	});
    }
}
```

kann mir einer erklären wieso das teil jetzt nicht geht????

die einzige meldung die ich bekommen ist:


> The serializable class Gui_v2 does not declare a static final serialVersionUID field of type long


so langsam fang ich an am rad zu drehen wegen dem scheiß button  :autsch:

Edit: und was aht es eigentlich mit dem ActionEvent e aufsich ? das ist in jedem Bsp. bekomme da aber ganz oft ne fehlermeldung(in anderen Bsp nicht in dem hier)


----------



## SlaterB (5. Jun 2008)

bei mir gehts,
die Warning solltest du bei jeder SubKlasse einer Swing-Komponente bekommen,
wenn du sie nicht ignorieren magst, dann programmiere eben keine SubKlassen von Swing-Komonenten


```
public class TestGUI
    extends JFrame
{

    public TestGUI()
    {
        add(new Gui_v2());        
        setSize(200, 100);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

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

class Gui_v2
    extends JPanel
{
    public Gui_v2()
    {
        super(new BorderLayout());

        JPanel p; // group west buttons
        add(p = new JPanel(new GridLayout(2, 1, 10, 10)), BorderLayout.WEST);
        p.add(new JButton("NW"));
        p.add(new JButton("SW"));

        JButton b;
        add(b = new JButton("Quit"), BorderLayout.EAST);

        b.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    System.exit(0);
                }
            });
    }
}
```


----------



## Guest (5. Jun 2008)

lhe hat gesagt.:
			
		

> und ganz vom fehlenden implements... abgesehen...
> 
> 
> ```
> ...



mastaaaa?
bist du´s?


----------



## assault (5. Jun 2008)

bei dir gehts????
 bekommmst du kein 





> Fatal exception occurred. Programm will exit


 (dachte das würde an dem 





> The serializable class Gui_v2 does not declare a static final serialVersionUID field of type long


 liegen)


----------



## Guest (5. Jun 2008)

lhe hat gesagt.:
			
		

> und ganz vom fehlenden implements... abgesehen...
> 
> 
> ```
> ...



und Methoden?


----------



## SlaterB (5. Jun 2008)

> Fatal exception occurred. Programm will exit

Fehler ohne ordentliche Fehlermeldung mit Zeilennummer und StackTrace haben eh nie mit 20 billigen Programmzeilen zu tun,
entweder du hast eine schlecht eingestellte Umgebung, die den eigentlichen Fehler verbirgt
(der auch in dem Teil des Programms liegen kann den du nicht postest, wo ist die main-Operation?)
oder du hast eigenen generell ganz anderen Fehler, z.B. beim Programmstart ohne main-Operation..


----------



## assault (5. Jun 2008)

ok hat sich schon erledig tläuft jetzt und ich poste den fehler lieber nicht der ist so dämlich das es schon weh tutu aber trotzdem thx


----------



## SlaterB (5. Jun 2008)

Anonymous hat gesagt.:
			
		

> und Methoden?


auch klein


----------



## Guest (5. Jun 2008)

thx


----------

