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:
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();
}
}