G
Guest
Gast
hy, ich habe hier ein kleines programm:
nun, dieser code zeichnet mir eine flagge mit drei rechtecken. was ich nun nicht ganz verstehe, ist, wesshalb diese Methode paint() der Klasse Flag automatisch aufgerufen wird, obwohl ich ja oben nur sage new Flag() .
die klasse Flag überschreibt die Methode paint der Klasse Canvas.
was passiert nun genau, wenn ich in der Klasse FlagMaker new Flag() sage?
vielen dank
grüsse sebi
Code:
import java.awt.*;
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FlagMaker extends Frame{
FlagMaker(){
add("Center",new Flag());
//Sorge dafür, dass das Programm beim Schliessen des Fensters endet:
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(1);
}
});
setTitle("Flagge");
setSize(300,200);
setVisible(true);
}
public static void main(String[] args){
new FlagMaker();
}
}
class Flag extends Canvas{
public void paint(Graphics g){
//Zeichne eine Flagge mit farbigen Rechtecken:
g.setColor(Color.BLUE);
g.fillRect(40,40,60,100);
g.setColor(Color.WHITE);
g.fillRect(100,40,60,100);
g.setColor(Color.YELLOW);
g.fillRect(160,40,60,100);
g.setColor(Color.BLACK);
g.drawString("Nederlande",100,180);
}
}
nun, dieser code zeichnet mir eine flagge mit drei rechtecken. was ich nun nicht ganz verstehe, ist, wesshalb diese Methode paint() der Klasse Flag automatisch aufgerufen wird, obwohl ich ja oben nur sage new Flag() .
die klasse Flag überschreibt die Methode paint der Klasse Canvas.
was passiert nun genau, wenn ich in der Klasse FlagMaker new Flag() sage?
vielen dank
grüsse sebi