Methoden warum wird diese Methode aufgerufen

nikolz

Mitglied
Hallo guten Tag,

um Java zu lernen programmiere ich gerade:
nach.
Es geht um Snake.

Ich habe ein Verständnis Problem:
------------------------------------
Eigentlich dachte ich, dass in der "public static void main(String[] args)" das Programm abläuft bzw. anläuft.
Jetzt ist mir aufgefallen, dass die Methode "public void paint (Graphics gr)" aufgerufen wird.
Ist es so, dass die Klasse Snake vererbt ist von JFrame?
D.h. in der main wird der Konstruktor von Snake aufgerufen, in diesem befindet sich der Befehl: super (title);
Das ist doch der Befehl der Mutterklasse oder ? Also von JFrame?
Wie kommt es dann, dass die dann, anscheinend durch den Befehl "super(title);",
die Methode public void paint (Graphics gr) ausführt?
Also wie kommt es dazu dass public void paint (Graphics gr) ausgeführt wird?




public class Snake extends JFrame {
private Dot dot = new Dot(4,this); // übergabe von Anzahl und von diesem Frame objekt

//1. Methode von Snake bzw. JFrame
public Snake(String title) {
super (title); // Konstruktor wird ein String übergeben
// Konstruktor im Konstruktor

}
//2. Methode
public void paint (Graphics gr){
super.paint(gr); // von der Mutterklasse
gr.drawImage(Toolkit.getDefaultToolkit().getImage("bilder/Desert.png"),0,0,this); // in THIS / diesem Frame objekt erstellen
dot.paint(gr);
}

public static void main(String[] args) {

Snake snake = new Snake("Schnarke 1.0"); // Neues Objekt anlegen, warum mit new? hea???
snake.setSize(500,500);
snake.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // typ des beendens

//Fenstereigenschaften
snake.setUndecorated(false); // hat es einen windows fensterstil?
snake.setLocation(400,100); // positiom
snake.setVisible(true); // kann man es sehen

}

}



Danke sehr 😀
Guten Tag noch !
mfG
NikolZ
 
Hallo.

Warum muss es immer gleich eine Übung sein mit einer grafischen Oberfläche? 🙄
Warum nimmst du nicht erstmal eine Lektüre und lernst die Grundlagen bevor du an so ein Thema ran gehst?
Deine fragen haben erstmal mit Grundlagen zu tun, bis auf die mit paint.

Grüße
 
Meiner Meinung nach ist Lektüre nur eine andere Form des Lernens.
Deswegen werde ich wohl auch mal in einer Lektüre nach paint suchen^^

Grafische Oberfläche:
Ich will gleich was cooles sehen.
Meiner Meinung nach habe ich so erstmal mehr Motivation.

Danke
 
Die Motivation wird dir mEn schnell vergehen wenn du mit Gui Programmierung lernen willst. Du wirst oft an deine Grenzen kommen weil du keine Erfahrung hast und nicht weißt wo einzelne Fehler herkommen könnten.
In der Programmierung ist es nun mal wie bei allen anderen lernbaren Dinger : erst die Basics (die manchmal etwas öde sein können) und dann kommen die "coolen Dinge". (wobei ich der Meinung bin das man auch auf der Konsole spannende Dinge machen kann 😉 )

Jetzt zu deiner Frage:
Das zeichnen in AWT/Swing wird durch den
Repaint Manager gesteuert. Dieser entscheidet wann Komponenten neu gezeichnet werden müssen und leitet dann ein Update (also ein Aufruf der paint Methode) ein.
Du solltest allerdings vermeiden auf TLC wie einem JFrame zu zeichnen.
Füge dem JFrame lieber ein JPanel (o.ä) hinzu und überschreibe dessen paintComponent(Graphics g) Methode.
 
Die Motivation wird dir mEn schnell vergehen wenn du mit Gui Programmierung lernen willst. Du wirst oft an deine Grenzen kommen weil du keine Erfahrung hast und nicht weißt wo einzelne Fehler herkommen könnten.
In der Programmierung ist es nun mal wie bei allen anderen lernbaren Dinger : erst die Basics (die manchmal etwas öde sein können) und dann kommen die "coolen Dinge". (wobei ich der Meinung bin das man auch auf der Konsole spannende Dinge machen kann 😉 )

Jetzt zu deiner Frage:
Das zeichnen in AWT/Swing wird durch den
Repaint Manager gesteuert. Dieser entscheidet wann Komponenten neu gezeichnet werden müssen und leitet dann ein Update (also ein Aufruf der paint Methode) ein.
Du solltest allerdings vermeiden auf TLC wie einem JFrame zu zeichnen.
Füge dem JFrame lieber ein JPanel (o.ä) hinzu und überschreibe dessen paintComponent(Graphics g) Methode.

Bin mal gespannt ob das verstanden wird 😀
 

Neue Themen


Zurück
Oben