G
Gast
Gast
Hallo,
hab für den Informatikunterricht ein Projekt bekommen, dass ich in einem Applet realisieren soll. Und zwar soll ein Smily gemalt werden, der mit Hilfe eines Timers mit dem Auge zwinkert (simpels Auge mal da, mal nicht)... Ichh ab mir es so gedacht, dass eine Zähl-Variable (hier "x") eins weiterzählt alle 500ms und je nach gerade oder ungerade das Auge öffnet oder zulässt. Dazu wird immer der Konstrukter von Zeichnung aufgerufen, und da dann das "x" ausgewertet. Danach wird neu gezeichnet, Zeichnung gelöscht und neu gezeichnet. Aber leider funktioniert das nicht Kann mir jemand helfen:
Hier ist mein Code:
[/code]
hab für den Informatikunterricht ein Projekt bekommen, dass ich in einem Applet realisieren soll. Und zwar soll ein Smily gemalt werden, der mit Hilfe eines Timers mit dem Auge zwinkert (simpels Auge mal da, mal nicht)... Ichh ab mir es so gedacht, dass eine Zähl-Variable (hier "x") eins weiterzählt alle 500ms und je nach gerade oder ungerade das Auge öffnet oder zulässt. Dazu wird immer der Konstrukter von Zeichnung aufgerufen, und da dann das "x" ausgewertet. Danach wird neu gezeichnet, Zeichnung gelöscht und neu gezeichnet. Aber leider funktioniert das nicht Kann mir jemand helfen:
Hier ist mein Code:
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.util.*; // Timer Klassen
public class KarteA__Timer_Derivate extends Applet {
private Timer timer;
public int x=0;
public void start() {
timer = new Timer(); //Instanz f. Timer
timer.schedule(new TimerTask() {
public void run() {
x++;
repaint();
add("Center", new Zeichnung () ); // Neue Zeichnung erzeugen
}
} , 500, 500);
}
public void init () {
setLayout( new BorderLayout());
setBackground(Color.blue);
}
class Zeichnung extends Canvas {
int hoehe;
int breite;
int temp1 = 0, temp2 = 0;
public void paint (Graphics blatt) {
breite = 400;
hoehe = 300;
blatt.setColor(Color.red);
blatt.drawRect(0,0,breite,hoehe);
blatt.drawRect(3,3,breite-6,hoehe-6);
beschrifteKarte (Color.green, blatt);
zeichneKopf (breite/4, hoehe/3, Color.yellow, blatt);
} // paint
void beschrifteKarte (Color f, Graphics b) {
b.setColor (f);
// b.drawString("Info",breite/5,30);
}
public void zeichneKopf (int x, int y, Color f, Graphics b) {
b.setColor (f);
b.fillOval (x, y, 60, 60);
b.setColor(Color.black);
b.drawLine(x+20, y+45, x+40, y+45); // Mund
b.drawLine(x+30, y+25, x+30, y+35); // Nase
b.fillRect(x+17, y+23, 3, 3); // rechtes Auge
temp1 = x / 2;
temp2 = temp1 * 2;
if (temp2 == x) { // Wenn x gerade, dann auge Auf
b.drawLine(x+37, y+24, x+43, y+24); // linkes Auge
}
if (temp2 == x) {
// hier irgendwas zum auge zu machen
}
}
}
}