Fenster schließen - Listener

Manuel_H

Mitglied
Hallo,

ich bin neu bei der OO-Programmierung. Ich versuche hier ein Fenster zu erzeugen und es dann per Mausklick zu schließen. Das ganze habe ich aus einem Tutorial. Folgende Fragen habe ich dazu:

1)Lasse ich das ganze im Eclipse-Debugger laufen und setze einen Toogle Punkt in die windowClosing-Methode, so sehe ich, dass das Programm niemals dort ankommt. Das Fenster schließt sich nicht, das Programm nicth beendet. Wieso?

2) Wie werden solche Methoden (Listener) überhaupt aufgerufen? Wird der gegenwärtige Ablauf unterbrochen und dann in die Mehode gesprungen? Wie funktioniert das ganze maschinennah? Ist das ein anderer Thread? Habe bisher nur prozedural programmiert und da fällt mir das umdenken noch etwas schwer.

3) Bei den Import-Kommandos meldet mir Eclipse einen Fehler falls ich nur ...awt.*; einbinde. Verlangt wird auch extra der WindowAdapter. Ich versteh nicht ganz wieso, ist gerade auch nicht mein Interesse, erwähne ich nur damit sich keiner wundert.

Danke für die Hilfe.

Hier kommt der Quellcode:

Java:
import java.awt.*;
import java.awt.event.WindowAdapter;

import javax.media.opengl.*;
import javax.media.opengl.awt.GLCanvas;


import com.jogamp.newt.event.WindowEvent;
import com.jogamp.opengl.util.Animator;


public class OpenGLWindow {
   public static void main (String[] args){
	   
	   Frame frame =new Frame("Fountain");
	   GLCanvas canvas = new GLCanvas();
	   
	   
	   frame.add(canvas);

	   frame.setSize(400,600);
	   final Animator animator =new Animator(canvas);

	   
	   frame.addWindowListener(new WindowAdapter() {
		   public void windowClosing(WindowEvent e) {
			   animator.stop();
			   System.exit(0);
		   }
		   
		   
	   });
	   frame.setVisible(true);
	   animator.start();

	   
   }
}
 
S

SlaterB

Gast
die Imports sind auch gerade der Grund für den Fehler,
> com.jogamp.newt.event.WindowEvent
muss dir doch als komisch auffallen,

bei Adaptern ist es verhängnisvoll, dass nicht unbedingt die schon fertig leere Methode überschrieben wird,
stattdessen definierst du eine neue mit dem falschen WindowEvent als Parameter, diese unbekannte Methode wird natürlich nie vom Framework
(ja, mit eigenen Thread, The Event Dispatch Thread (The Java™ Tutorials > Creating a GUI With JFC/Swing > Concurrency in Swing) ) aufgerufen

java.awt.event.WindowEvent
wärs gewesen
 

Vancold

Aktives Mitglied
Wenn du AWT verstanden hast benutze einfach Swing.

Einfach vor jede Komponente J schreiben dann hast du Swing.

Der Frame also der JFrame hat nämlich die Methode setDefaultCloseOperation();

schaut so aus im Objekt:

Java:
 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Macht genau das was du eig. willst und brauchst keinen Listener ;)


Beispiel:

Frame = AWT
JFrame = Swing

Button = AWT
JButton = Swing

Panel = AWT
JPanel = Swing



(Methoden sind eigentlich die selben nur du hast einiges mehr. Mit den Listener funktioniert auch gleich ;))
 

Manuel_H

Mitglied
Danke für die Antworten. Jetzt ist mir das ganze klarer. Ich vermute mal, dass dadurch, dass das WindowEvent in mehreren Bibliotheken drin ist, eclipse auch verlangt hat, dass ich den ganzen "Pfad" (java.awt.event.WindowEvent) angebe, oder? Anstatt einfach java.awt.*; , oder?

Ich muss sagen, dass prozedurale Programmierung etwas intuitiver ist, da weiß man immer wo man ist. Dass ich einfach eine Methode in den Quelltext schreibe und die dann bei Bedarf einfach aufgerufen wird... d.h. ja dass ich immer alle Listener und ähnliche Objekte etc. im Kopf haben muss und keine direkte Verlaufskontrolle habe.

Daran muss ich mich wohl noch gewöhnen.

Grüße,
Manuel
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
T Fenster schließen AWT, Swing, JavaFX & SWT 4
E JavaFX JavaFX Fenster nicht schließen AWT, Swing, JavaFX & SWT 4
thet1983 offne Fenster gemeinsam schließen AWT, Swing, JavaFX & SWT 8
F JavaFX KeyListener zum Fenster öffnen/schließen AWT, Swing, JavaFX & SWT 9
M Swing Einzelne Fenster schließen AWT, Swing, JavaFX & SWT 2
M Swing ButtonListener Fenster schließen AWT, Swing, JavaFX & SWT 15
S Fremdes Fenster schließen AWT, Swing, JavaFX & SWT 2
E Fenster schließen und ein anderes öffnen AWT, Swing, JavaFX & SWT 9
X Öffnen Schließen Fenster AWT, Swing, JavaFX & SWT 4
0 Fenster schließen AWT, Swing, JavaFX & SWT 2
B AWT mehrere Fenster schließen AWT, Swing, JavaFX & SWT 8
D Fenster schließen AWT, Swing, JavaFX & SWT 7
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
2 Zusätzliches Fenster mit OK-Button schließen AWT, Swing, JavaFX & SWT 7
B Fenster schließen AWT, Swing, JavaFX & SWT 4
I Fenster schließen - Button AWT, Swing, JavaFX & SWT 13
G Swing Fenster schließen AWT, Swing, JavaFX & SWT 6
E Fenster schließen über X AWT, Swing, JavaFX & SWT 8
D aktuells fenster + letztes fenster schließen AWT, Swing, JavaFX & SWT 5
R [gelöst]Fenster schließen - trotz Endlosschleife in der Paint-Methode? AWT, Swing, JavaFX & SWT 3
A Eins von zwei offnen Fenster/Frames schließen AWT, Swing, JavaFX & SWT 2
J Fenster schließen ohne das Programm zu beenden AWT, Swing, JavaFX & SWT 3
F Programmiertes Fenster schließen AWT, Swing, JavaFX & SWT 3
P SWT Fenster schließen abfangen AWT, Swing, JavaFX & SWT 4
S Einzelne Frame Fenster schließen AWT, Swing, JavaFX & SWT 2
S Einzelne Frame Fenster schließen AWT, Swing, JavaFX & SWT 2
G Wie schließen Fenster automatisch? AWT, Swing, JavaFX & SWT 12
W JDialog ohne zum Fenster Schließen AWT, Swing, JavaFX & SWT 2
D Fenster schließen mit JButton AWT, Swing, JavaFX & SWT 2
K Fenster lässt sich nicht schließen =( AWT, Swing, JavaFX & SWT 16
B Fenster soll sich bei auf Druck auf ESC schließen AWT, Swing, JavaFX & SWT 5
G Nur ein Fenster schließen? AWT, Swing, JavaFX & SWT 3
G Fenster schließen? AWT, Swing, JavaFX & SWT 4
X Fenster schließen aber nicht beenden AWT, Swing, JavaFX & SWT 9
S Bei ESC Fenster schließen AWT, Swing, JavaFX & SWT 6
H Fenster mit dem x-Button schließen AWT, Swing, JavaFX & SWT 5
A Fenster über Menü schließen AWT, Swing, JavaFX & SWT 2
G Fenster anzeigen und schließen? AWT, Swing, JavaFX & SWT 15
G Fenster bzw. Dialog schließen AWT, Swing, JavaFX & SWT 3
S Fenster schließen?! AWT, Swing, JavaFX & SWT 5
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
berserkerdq2 Kann ich ein Rechteck mittig im Fenster halten, egal wie ich die Bildschirmgröße verändere? AWT, Swing, JavaFX & SWT 3
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
TheSepp Fenster um x Pixel bewegen, wenn man auf dem Knopf drückt AWT, Swing, JavaFX & SWT 10
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
L Swing Files abspeichern mit Save as Dialog Fenster AWT, Swing, JavaFX & SWT 5
OZAN86 einfaches Fenster öffnen scheitert AWT, Swing, JavaFX & SWT 18
G Zuletzt aktives Fenster, vor dem aktuell aktiven AWT, Swing, JavaFX & SWT 2
sserio Kann man bei JavaFx ein Fenster aufkommen lassen? AWT, Swing, JavaFX & SWT 1
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
S Swing Alles beenden bei Fenster mit Scroll-Balken AWT, Swing, JavaFX & SWT 6
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
W Zweites/neues Fenster durch Button öffnen AWT, Swing, JavaFX & SWT 6
CptK Fokus auf geöffnetes Zweit-Fenster setzen und Eingaben außerhalb blocken AWT, Swing, JavaFX & SWT 2
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
MiMa JavaFX Fenster in JavaFX öffnen Schliessen (Initialisierung) AWT, Swing, JavaFX & SWT 20
N Kontextmenü (Popup-Fenster) erstellen AWT, Swing, JavaFX & SWT 3
L Hintergrundbild im Fenster darstellen AWT, Swing, JavaFX & SWT 9
P JavaFX Fenster wird nicht angezeigt (Mac) AWT, Swing, JavaFX & SWT 13
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
B JavaFX TextField Eingabe in neues Fenster übernehmen AWT, Swing, JavaFX & SWT 4
N Drag and Drop Fenster AWT, Swing, JavaFX & SWT 11
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
A Fenster genau unterhalb von JTextField anzeigen AWT, Swing, JavaFX & SWT 1
J Overlay Panel statt neues Fenster AWT, Swing, JavaFX & SWT 6
S Swing Bei start des Programmes kein Fenster zu sehen AWT, Swing, JavaFX & SWT 1
X Neues Fenster mit Button öffnen und bearbeiten AWT, Swing, JavaFX & SWT 4
platofan23 JAVAFX zweites Fenster öffnen AWT, Swing, JavaFX & SWT 2
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
P JavaFX Fenster lädt nicht mehr AWT, Swing, JavaFX & SWT 4
I AWT Listener während man in anderem Fenster ist AWT, Swing, JavaFX & SWT 4
S JavaFX Fenster aufkommen lassen, wenn mit der Maus über bestimmten Bereich fahren AWT, Swing, JavaFX & SWT 1
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
D Swing Neues (3.) Fenster öffnen AWT, Swing, JavaFX & SWT 2
G JavaFX Fenster 1 Array übertragen zur Fenster 2 AWT, Swing, JavaFX & SWT 0
I JavaFX Fenster wird auf einem anderen Rechner anders dargestellt AWT, Swing, JavaFX & SWT 5
K Fenster welches den Sieger anzeigt AWT, Swing, JavaFX & SWT 5
O JavaFX Fenster scließen AWT, Swing, JavaFX & SWT 4
A Swing Fenster ändert Position bei Mausklick nicht AWT, Swing, JavaFX & SWT 2
S SWT neues Fenster, buttons aus alten etc... AWT, Swing, JavaFX & SWT 0
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
L Input aus Sub-Fenster Startfenster übergeben AWT, Swing, JavaFX & SWT 5
B AWT Fenster schließt nicht AWT, Swing, JavaFX & SWT 2
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
U Swing Inhalt vom Fenster wird erst durch Hovern oder Klicken sichtbar AWT, Swing, JavaFX & SWT 3
A Nach klick auf Button neuen Inhalt im gleichen Fenster AWT, Swing, JavaFX & SWT 3
K JavaFX ObservableList + Fenster AWT, Swing, JavaFX & SWT 6
windl Transparentes / halbtransparentes Fenster AWT, Swing, JavaFX & SWT 1
K Fenster mittig im Vollbildschirm - ok, aber ... AWT, Swing, JavaFX & SWT 2
N Swing Sorry nicht mal ein Fenster öffnen... AWT, Swing, JavaFX & SWT 19
S actionlistener mit 2 fenster integrieren AWT, Swing, JavaFX & SWT 11
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben