Problem beim aufrufen einer Methode

Danilo Geissler

Grünschnabel
Habe ein kleines Problem und weiss gerade nicht mehr genau, wo mein Fehler leigt, ich hatte es vor einer Weile schonmal so gemacht, da lief es. Ich werde langsam schon ganz :confused: .

IAlso ich habe dieses Stückchen Code
Java:
public void windowClosing(){
		if(JOptionPane.showConfirmDialog(UmrechnungsLog.this, "Wollen sie das Programm wirklich beenden?",
		"Beenden?", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
			JOptionPane.showMessageDialog(UmrechnungsLog.this, "Bis zum nächsten Mal");
			System.exit(0);
		}
	}
Und will den an dieser Stelle aufrufen.
Java:
addWindowListener(new WindowAdapter(){
			windowClosing();
		});
Nur leider sagt er mir da,
invalid method declaration; return type required
Wahrscheinlich ist da nur nen ganz simpler dummer Fehler kann ich mir vorstellen. Ich komme aber gerade nicht drauf, wo der liegt.

-MfG- Danilo
 
Zuletzt bearbeitet von einem Moderator:
Das was du mit new WindowAdapter dort machst ist eine anonyme Klasse anzulegen. Du versuchst somit außerhalb jeder Methode die Methode windowClosing aufzurufen und das kann natürlich nicht klappen.

Kopier mal die Gesamte Methode windowClosing dahin wo es eigentlich aufgerufen werden soll, dann wirds auch gehen.
 
Das es dann funktioniert, weiss ich. Aber da ich dieses closingWindow() an mehreren Stellen verwenden wollte, habe ich es extra geschrieben und wollte es dann an den entsprechenden Stellen aufrufen.

Hmm, naja ich probier mal noch ein bisschen rum, vielleicht komme ich dann wieder drauf, wie es damals ging *fg*

-MfG- Danilo
 
Hallo,

der WindowAdapter ist ja nur eine Klasse die den WindowListener implementiert. Wenn du man eine anonyme Klasse vom WindowListener implementierst, wirst du sehen, dass du dort Methoden implementieren musst.

Code:
new WindowListener(){

      public void windowActivated(WindowEvent e)
      {
      }

      public void windowClosed(WindowEvent e)
      {
      }

      public void windowClosing(WindowEvent e)
      {
      }

      public void windowDeactivated(WindowEvent e)
      {
      }

      public void windowDeiconified(WindowEvent e)
      {
      }

      public void windowIconified(WindowEvent e)
      {
      }

      public void windowOpened(WindowEvent e)
      {
      }
      
    }

Unter anderem gibt es da eine Methode mit folgender Signatur
Code:
public void windowClosing(WindowEvent e)

Das einzige was du tun musst, ist die Methode beim WindowAdapter zu überschreiben und deine Methode in dieser Methode aufzurufen.
Eine andere Möglichkeit wäre, dass deine Fenster-Klasse den WindowListener implementier und du die windowClosing-Methode ausprogrammierst, dann kannst du diese Methode überall aufrufen. Ich persönlich finde die andere Lösung aber besser.

MFG

zEriX
 
Zuletzt bearbeitet:
Habe nun gefunden wie es war *fg*
Methode:
Java:
public void zuMachen(){
		if(JOptionPane.showConfirmDialog(UmrechnungsLog.this, "Wollen sie das Programm wirklich beenden?",
			"Beenden?", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
				JOptionPane.showMessageDialog(UmrechnungsLog.this, "Bis zum nächsten Mal");
				System.exit(0);
		}
	}
Und dann so aufrufen
Java:
addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				zuMachen();
			}
		});
Gibt keine Fehlermeldung, ich kann die Methode an mehreren Stellen verwenden und es funktioniert. Naja, wenn man es ein bisschen liegen lässt und dann später nochmal schaut, fällt es einem etwas leichter wieder ein *fg*

-MfG-
 
Zurück