cześć,
czy mógłby ktoś z na forum wytłumaczyć (najlepiej na jakimś przykładzie) jak działa i do czego służy metoda addNotify() z klasy JComponent ?
wiem, że chodzi o "przekazanie sterowania" zaraz po utworzeniu danego komponentu (czy coś takiego) ale ogólnie mało na ten temat znalazłem a wiem, że są na tym forum osoby, które zawodową programują w javie i będą w stanie wyjaśnić o co chodzi w tej metodzie addNotify() :-)
może dodam jeszcze kawałek kodu, z jakiegoś tutoriala o tworzeniu gierki w javie:
public class Board extends JPanel implements Runnable {
private Image star;
private Thread animator;
private int x, y;
private final int DELAY = 50;
public Board() {
setBackground(Color.BLACK);
setDoubleBuffered(true);
ImageIcon ii = new ImageIcon(this.getClass().getResource("star.png"));
star = ii.getImage();
x = y = 10;
}
public void addNotify() {
super.addNotify();
animator = new Thread(this);
animator.start();
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D)g;
g2d.drawImage(star, x, y, this);
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
public void cycle() {
x += 1;
y += 1;
if (y > 240) {
y = -45;
x = -45;
}
}
public void run() {
long beforeTime, timeDiff, sleep;
beforeTime = System.currentTimeMillis();
while (true) {
cycle();
repaint();
timeDiff = System.currentTimeMillis() - beforeTime;
sleep = DELAY - timeDiff;
if (sleep < 0)
sleep = 2;
try {
Thread.sleep(sleep);
} catch (InterruptedException e) {
System.out.println("interrupted");
}
beforeTime = System.currentTimeMillis();
}
}
}
to jest klasa odpowiedzialna za wyświetlanie grafiki na panelu, prosiłbym tylko o wyjaśnienie metody addNotify()
z góry dziękuję za wszystkie odpowiedzi, pozdrawiam