Mik3e
Erfahrenes Mitglied
Hallo zusammen!
Bin gerade am Weg von prozeduralen Programmiersprachen hin zu OOP. Wühle mich nun schon seit zwei Tagen durch Handbücher und Tutorials. Bislang gibts kaum Probleme (außer die Verwirrung mit den tausenden Begrifflichkeiten).
Habe nun ein einfaches GUI mit AWT gebastelt. Klasse "Grafikbeispiel" wird von der Java AWT Klasse "Frame" vererbt.
Im Programm wird dann ein neues Objekt vom Typ "Grafikbeispiel" erstellt, dass auch event-Handler Methoden beinhaltet.
Dann gibt es noch eine Methode "Paint" die ein paar Striche in das Fenster zeichnet.
Meine Frage:
Wann und Warum wird diese Methode (paint) automatisch beim Start ausgeführt?
(Die Striche werden gezeichnet). Ist dies nur eine überlagerte Methode aus der Frame Klasse?
Hier der funktionierende Quellcode:
Danke für eine kurze Aufklärung und LG,
Mike
Bin gerade am Weg von prozeduralen Programmiersprachen hin zu OOP. Wühle mich nun schon seit zwei Tagen durch Handbücher und Tutorials. Bislang gibts kaum Probleme (außer die Verwirrung mit den tausenden Begrifflichkeiten).
Habe nun ein einfaches GUI mit AWT gebastelt. Klasse "Grafikbeispiel" wird von der Java AWT Klasse "Frame" vererbt.
Im Programm wird dann ein neues Objekt vom Typ "Grafikbeispiel" erstellt, dass auch event-Handler Methoden beinhaltet.
Dann gibt es noch eine Methode "Paint" die ein paar Striche in das Fenster zeichnet.
Meine Frage:
Wann und Warum wird diese Methode (paint) automatisch beim Start ausgeführt?
(Die Striche werden gezeichnet). Ist dies nur eine überlagerte Methode aus der Frame Klasse?
Hier der funktionierende Quellcode:
Code:
package kfzverwaltung;
import java.awt.*;
import java.awt.event.*;
public class GrafikBeispiel
extends Frame
{
public static void main(String[] args)
{
GrafikBeispiel wnd = new GrafikBeispiel();
}
public GrafikBeispiel()
{
super("GrafikBeispiel");
addWindowListener(new WindowClosingAdapter(true));
setBackground(Color.white);
setSize(300,200);
setVisible(true);
setResizable(false);
}
public void paint(Graphics g)
{
int i;
int x = 80;
for (i=0; i<60; ++i) {
g.drawLine(x,40,x,100);
x += 1+3*Math.random();
}
}
}
Danke für eine kurze Aufklärung und LG,
Mike