Hej,
Napotkałem ostatnio na taki sposób jak poniżej - rysowania figur na ekranie. Nie rozumiem tutaj jednej rzeczy. Dlaczego metoda Rectangle() jest wywoływana i rysuje na ekranie czerwony prostokąt skoro nie znajduje się ona w konstruktorze? Co ją wywołuje? Jeśli stworzę ramkę w inny sposób - poprzez utworzenie obiektu JFrame i za jego pomocą utworzę ramkę w konstruktorze to metoda Rectangle() się nie wywoła. Dlaczego poniższy sposób z użyciem słowa "this" sprawia, że metoda jest wywoływana?
//Edit; Kod edytowany, teraz jest poprawny :>
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
public class Grap extends JFrame {
Graphics g;
public Grap() {
this.setTitle("remember");
this.setSize(500, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void paint(Graphics g) {
g.setColor(Color.RED);
g.fillRect(0, 0, 100, 100);
}
public static void main(String[] args) {
new Grap();
}
}