Ich habe ein Problem mit folgender GUI, die eine Animation darstellen soll:
Das Problem ist, die paintComponent()-Methode wird nicht aufgerufen - ich sehe zumindest in der Konsole nicht, dass da irgendwo "paintComponent() wird ausgeführt" stehen würde.
Obwohl da ja "zeichenPanel.repaint();" extra dasteht...
Wo liegt (oder steht ;-)) das Problem?
Code:
import javax.swing.*;
import java.awt.*;
public class EinfacheAnimation {
int x = 70;
int y = 70;
public static void main(String[] args) {
EinfacheAnimation gui = new EinfacheAnimation();
gui.los();
}
public void los() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MeinZeichenPanel zeichenPanel = new MeinZeichenPanel();
frame.add(BorderLayout.CENTER, zeichenPanel);
frame.setSize(300, 300);
frame.setVisible(true);
for (int i = 0; i < 130; i++) {
System.out.println("Schleife: " + i);
x++;
y++;
System.out.println(" x: " + x + ", y: " + y);
try {
System.out.println(" repaint()-Block");
zeichenPanel.repaint();
} catch (Exception ex) {
System.out.println(" Fehler");
System.exit(0);
}
try {
System.out.println(" Geschlafen");
Thread.sleep(50);
} catch (Exception e) {
System.out.println(" Fehler");
System.exit(0);
}
}
}
class MeinZeichenPanel extends JPanel {
public void paintCompent(Graphics g) {
System.out.println("paintComponent() wird ausgeführt");
g.setColor(Color.white);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.setColor(Color.green);
g.fillOval(x, y, 40, 40);
}
}
}
Das Problem ist, die paintComponent()-Methode wird nicht aufgerufen - ich sehe zumindest in der Konsole nicht, dass da irgendwo "paintComponent() wird ausgeführt" stehen würde.
Obwohl da ja "zeichenPanel.repaint();" extra dasteht...
Wo liegt (oder steht ;-)) das Problem?