Fenster schliesst nicht

Status
Nicht offen für weitere Antworten.

xray

Mitglied
Ich komme aus der Flash7 ecke,
mache gerade meine ersten Gehversuche in Java und habe es tatsächlich geschafft,
mit Eclipse ein Fernster - heisst ja Frame - zu erzeugen.

Code:
import java.awt.Frame;


public class Test extends Frame{
    
    
    public Test(){
        super("my frame");
        setVisible(true);
        setEnabled(true);
        //removeNotify();
    }
    
    public static void main(String[] args){
        new Test();
    }
}
Man kann das fenster aber nicht schliessen, wenn man auf X klickt.
Wie geht das?

Habe mir natürlich auch die Java-doku runtergeladen sowie selfjava,
aber keinen Listener für dieses Event gefunden.
(Ich gehe mitlerweile davon aus, das man dafür einen definieren muss).

Wenn man removeNotify() auskomentiert,
verschwindet das Fenster gleich wieder - soviel habe ich herausgefunden.
Ist das überhaupt der richtige Befehl dafür????

Kann mir jemand helfen?
 

guenni81

Aktives Mitglied
Hallo,
du musst folgenden Listener hinzufügen:
Code:
addWindowListener(this);
nun musst du alle Ereignisse überschreiben die verlangt werden (Eclipse hilft dir dabei). Sind glaube ich 7 stück.
Hier trägst du dann im windowClosing() Ereignis einfach ein System.exit(0); ein.
Alternativ ginge auch
Code:
addWindowListener(new WindowControl());

WindowControl.java
Code:
// Schreiben einer eigenen WindowListenerKlasse
import java.awt.event.*;

// Alle nicht benutze Methoden werden leer deklariert
class WindowControl extends WindowAdapter
{
	// Closing ereignis
	public void windowClosing(WindowEvent e)
	{
		System.exit(0);
	}
}
 

karahead

Aktives Mitglied
Oder:
Code:
public Test(){ 
        super("my frame"); 
        setVisible(true); 
        setEnabled(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        //removeNotify(); 
    }
 

xray

Mitglied
Seit über 6 Stunden! -das muss man sich mal auf der Zunge zergehen lassen-

Seit 6 Stunden versuche ich ein Fenster zu erstellen, das sich schliesst, wenn man auf den Knopf dückt --aarrrrgggg--
Ich schiele schon und gleich fang' ich an zu Sabbern...
Das kann doch ncht so schwer sein *sabber* (jetzt isses soweit)

Alles mögliche habe ich schon ausprobiert. Nichts, aber auch garnichts geht.


@guenni81
addWindowListener(this); geht nicht:
The method addWindowListener(WindowListener) in the type Window is not applicable for the arguments (Test)

Hier neine letzte konstruction *verzweifel*
Code:
import java.awt.*;
import java.awt.event.*;

public class Test extends Frame{
    
    
    public Test(){
        super("my frame");
        setVisible(true);
        setEnabled(true);
        /* error:
        addWindowListener(this);
        The method addWindowListener(WindowListener) in the type Window is not applicable for the arguments (Test)
        */
        
        // dann versuchen wir's mal Flashlike...
        addWindowListener(new WindowControl(this)); // ok
    }
    public void closeWindow(){
	    System.exit(0); 
	}
    public static void main(String[] args){
        new Test();
        System.out.println("main"); // ok
    }
}
class WindowControl extends WindowAdapter{
    private Test scope;
    public WindowControl(Test scope) {
        super();
        this.scope = scope;
    }

	public void WindowClosing(WindowEvent e){
	    scope.removeNotify(); // funzt nicht
	    scope.closeWindow();  // funzt nicht
	    System.out.println("schliesse Fenster"); // funzt nicht
	    System.exit(0); // funzt nicht
	}
}

funzt natürlich auch nicht...
 

ronny

Bekanntes Mitglied
Hallo xray!

muss es unbedingt der Frame von AWT sein?

versuch doch mal JFrame von Swing.

Dann sollten die Funktionen "setDefaultOnClose..." etc. die schon die anderen vorgeschlagen haben auch funktionieren.

also quasi so:

Code:
public class Test extends JFrame
 

xray

Mitglied
@ronny
ja, muss.

Es soll mal die möglichkeit geben, den user zu fragen, ob nicht gespeicherte Daten gespeichert werden sollen, bevor das Fenster schliesst.
 
B

Beni

Gast
xray hat gesagt.:
@guenni81
addWindowListener(this); geht nicht:
The method addWindowListener(WindowListener) in the type Window is not applicable for the arguments (Test)

Guck dir doch noch die zweite Variante von guenni81 an, das müsste wirklich funktionieren. (Hm, das funktioniert! *Punkt* :bae:)
 

xray

Mitglied
Code:
import java.awt.event.*; 

public class WindowControl extends WindowAdapter{
    public WindowControl(){}

    // Closing ereignis 
    public void windowClosing(WindowEvent e) 
    { 
       System.exit(0); 
    } 
    
}




Code:
/*
  * error:
  * addWindowListener(new WindowControl());
  * The constructor WindowControl() is undefined
*/
addWindowListener(new WindowControl()); // funzt net

nö.
 

L-ectron-X

Gesperrter Benutzer
karahead hat gesagt.:
Oder:
Code:
public Test(){ 
        super("my frame"); 
        setVisible(true); 
        setEnabled(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        //removeNotify(); 
    }
Diese Variante funktioniert nur in Swing, nicht aber im hier verwendeten AWT.
 

xray

Mitglied
Sagt mal, gibt es denn kein beispiel für eine so einfache Sache.
Ein Script, ein Tutorial oder sonst irgendwas?

Ein einfaches leeres Fenster, das sich über einen Listener schliesst, wenn man das Knöppsche drückt.

Das ist doch *die* Basis schlechthin, bervor man überhaupt weiter machen kann.
 

SebiB90

Top Contributor
Code:
addWindowListener(new WindowAdapter() {
  public void windowClosing(WindowEvent e) { 
       System.exit(0); 
  }
});
so müsste es gehen
 

L-ectron-X

Gesperrter Benutzer
SelfJava- naja...
Guck mal hier rein: http://www.galileocomputing.de/openbook/javainsel4/index.htm

So und nun noch zwei Lösungsbeispiele:
Code:
import java.awt.*;
import java.awt.event.*;


public class Test extends Frame{

  public Test(){
    super("my frame");
    
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });

  setSize(640,480);
  setLocationRelativeTo(null);  
  setVisible(true);
  }
   
  public static void main(String[] args){
    new Test();
  }
}
Verwendung von WindowAdapter. Solche Klassen sind, wie ich immer gern sage, Bequemlichkeitsklassen, die dem Programmierer etwas Schreibarbeit ersparen, da nur Methoden ausprogrammiert werden müssen, die man auch tatsächlich benötigt. Anders da folgende Lösung:


Code:
import java.awt.*;
import java.awt.event.*;


public class Test extends Frame implements WindowListener {

  public Test(){
    super("my frame");
    addWindowListener(this);
    setSize(640, 480);
    setLocationRelativeTo(null);
    setVisible(true);
  }

  public void windowClosing(WindowEvent e) {
    System.exit(0);
  }

  public void windowOpened(WindowEvent e) { }

  public void windowClosed(WindowEvent e) { }

  public void windowIconified(WindowEvent e) { }

  public void windowDeiconified(WindowEvent e) { }

  public void windowActivated(WindowEvent e) { }

  public void windowDeactivated(WindowEvent e) { }
   
  public static void main(String[] args){
    new Test();
  }
}
Hier wird der WindowListener implementiert, ein Interface. Interfaces implementieren nur abstrakte Methoden, die allesamt in der implementierenden Klasse überschrieben werden müssen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
J Überprüfen ob ein Fenster offen ist? Java Basics - Anfänger-Themen 8
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
celta_vigo Konsolen-Fenster ist weg Java Basics - Anfänger-Themen 5
Thomathy Interface Wie schließt man ein anderes JFrame Fenster? Java Basics - Anfänger-Themen 6
M PNG als Spieler im Fenster anzeigen Java Basics - Anfänger-Themen 4
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
A Eclipse-Fenster starten statt Konsoleausgabe Java Basics - Anfänger-Themen 2
A Fenster bleibt weiß Java Basics - Anfänger-Themen 7
O Fenster programmieren Java Basics - Anfänger-Themen 2
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
A Fenster programmieren Java Basics - Anfänger-Themen 1
J JFrame Fenster öffnet sich nicht Java Basics - Anfänger-Themen 7
M aus Fenster anderes Fenster öffnen und wieder umgekehrt Java Basics - Anfänger-Themen 5
J Best Practice DOS Fenster mit Befehlszeile (Lösung) Java Basics - Anfänger-Themen 2
J Fenster wieder unsichtbar machen Java Basics - Anfänger-Themen 2
das_leon Gesamtes Programm in einem Fenster Java Basics - Anfänger-Themen 1
E Knopfdruck neues Fenster öffnen Java Basics - Anfänger-Themen 5
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
W Es wird erst gezeichnet, wenn ich das Fenster vergrößere? Java Basics - Anfänger-Themen 20
K Interface Fenster mit 3 ComboBoxen und 1 Button Java Basics - Anfänger-Themen 13
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
I Fenster A soll Fenster B schliessen Java Basics - Anfänger-Themen 5
D Java Fenster blockiert ? Java Basics - Anfänger-Themen 5
K Erste Schritte Neues Fenster mit Textinhalt öffnen Java Basics - Anfänger-Themen 6
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A Popup-Fenster Java Basics - Anfänger-Themen 1
L Fenster auf Knopfdruck Java Basics - Anfänger-Themen 3
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
J ausgaben von der konsole in das fenster Java Basics - Anfänger-Themen 5
O Finally beim Fenster schliessen Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
P Eigenes Fenster erstellen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
J Extra Fenster (Frame) Java Basics - Anfänger-Themen 20
llabusch Fenster per Button verschieben Java Basics - Anfänger-Themen 5
llabusch Fenster um x Pixel verschieben Java Basics - Anfänger-Themen 4
P Window Builder Reiter im Fenster erstellen Java Basics - Anfänger-Themen 7
S Java Fenster Java Basics - Anfänger-Themen 2
D (zwei) Fenster mit unterschiedlicher Befüllung Java Basics - Anfänger-Themen 11
A JAVA Fenster in ein PDF Konvertieren Java Basics - Anfänger-Themen 1
A Erkennung eines Button im aktiven Fenster Java Basics - Anfänger-Themen 2
B Variable im Fenster anzeigen lassen? Java Basics - Anfänger-Themen 2
S Fenster ist zu groß Java Basics - Anfänger-Themen 8
O GUI: Eigene Fenster "Form"? Java Basics - Anfänger-Themen 13
X JFrame Fenster einzeln schließen Java Basics - Anfänger-Themen 2
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
F Erste Schritte Aktuelles Fenster durch Event schließen Java Basics - Anfänger-Themen 3
N Java Programm im CMD Fenster öffnen, wie? Java Basics - Anfänger-Themen 17
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
J Button nimmt das komplette Fenster ein?! Java Basics - Anfänger-Themen 5
M Beim Klicken auf X neues Fenster Java Basics - Anfänger-Themen 4
Athena Schlichtes Fenster mit Windowskomponenten Java Basics - Anfänger-Themen 3
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
S Neues Fenster auf Knopfdruck Java Basics - Anfänger-Themen 12
J Button drücken neues Fenster?! Java Basics - Anfänger-Themen 5
A Login Fenster Java Basics - Anfänger-Themen 3
C Button - neues Fenster - Bestellung anzeigen Java Basics - Anfänger-Themen 10
Z GUI-Fenster leeren Java Basics - Anfänger-Themen 5
M Erste Schritte Probleme mit Fenster Schließen Java Basics - Anfänger-Themen 6
J ordentliche Fenster Java Basics - Anfänger-Themen 17
J Problem beim Fenster Java Basics - Anfänger-Themen 4
Z Login Fenster Java Basics - Anfänger-Themen 7
K Aus JFrame-Fenster SuM-Fenster öffnen geht nicht! Java Basics - Anfänger-Themen 8
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
O Größeres Fenster als angegeben?! Java Basics - Anfänger-Themen 2
J Eltern-Fenster ermitteln Java Basics - Anfänger-Themen 2
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
V Fenster wird nicht mittig platziert Java Basics - Anfänger-Themen 3
P gui fenster nur einmal aufrufen Java Basics - Anfänger-Themen 5
P Im Fenster bleiben (swing) Java Basics - Anfänger-Themen 16
J Werte ins neue Fenster übertragen Java Basics - Anfänger-Themen 6
S Fenster richtig schließen Java Basics - Anfänger-Themen 8
M Einfacher Fenster-Ablauf Java Basics - Anfänger-Themen 5
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
J Zweimal im gleichen Paint-Fenster malen Java Basics - Anfänger-Themen 8
SexyPenny90 Wie erstelle ich ein extra Fenster mit einer Meldung Java Basics - Anfänger-Themen 2
S nur neu geöffnetes Fenster schließen Java Basics - Anfänger-Themen 3
J Willkürlich geöffnetes Fenster/Dialog anspielen? Java Basics - Anfänger-Themen 3
M OOP GUI - Fenster vererben? Java Basics - Anfänger-Themen 9
T fenster schliesen und mouse events in einer nicht abstrakten klasse Java Basics - Anfänger-Themen 6
M Erste Schritte Fenster Und VB Funktionen Java Basics - Anfänger-Themen 8
G Scrollbares Fenster bei mehr als 5 Objekten Java Basics - Anfänger-Themen 4
L Fenster winzig klein durch GridBagLayout Java Basics - Anfänger-Themen 3
R Welcher Layout Manager-für so ein Fenster? Java Basics - Anfänger-Themen 5
H Java-Fenster ohne Inhalt Java Basics - Anfänger-Themen 2
T Windows Fenster Schließen Java Basics - Anfänger-Themen 4
E JFrame Fenster bewegen Java Basics - Anfänger-Themen 8
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
E javaw öffnet trotzdem ein DOS Fenster Java Basics - Anfänger-Themen 15
M Output Input im Cmd Fenster Java Basics - Anfänger-Themen 7

Ähnliche Java Themen


Oben