Viereck "wandern" lassen

Status
Nicht offen für weitere Antworten.
M

Momchilo

Gast
Hallo zusammen,

ich muss gezwungener Maßen mit Java arbeiten. Genauer genommen mit Java Applets.
Meine Aufgabe ist es ein Viereck von links nach rechts wandern zu lassen.
Das klappt auch so halbwegs, aber es "wandert" viel zu schnell nach rechts.

Dieses Porgamm sieht dann so aus
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;



public class viereck extends Applet
{
 public void paint(Graphics g)
 {
   for (int i=0;i<100 ;i++)
   {
    g.setColor(Color.red);
    g.fillRect(20+i,20,120+i,120);
    g.setColor(Color.white);
    g.fillRect(0+i,20,20+i,120);
   }

 }

Jetzt habe ich einige SAchen dazu gelesen und irgednwie soll es wohl mit Thread.sleep gehen.
DAzu habe ich unter anderem das hier gefunden:

Code:
  public void run() {
      for(int i = 0; i < 10; i++) {
        try {
          sleep(5000);
        }
        catch(InterruptedException e) {
        }
        System.out.println("Demo-Thread");
      }
    }
  
  }
Aber hinbekommen habe ich es damit auch nicht.
Gibt es nicht einen einfachen Befehl, dass das Programm für so und so viele Milisekunden anhalten soll ? :?
Ich habe keine Ahnung, wie ich das mit Thread.sleep machen soll. Wenn jemand einen Tipp oder einen Lösungsansatz hat, wäre ich sehr dankbar.

Grüße Momchilo
 

moormaster

Top Contributor
Thread.sleep(5000) ist der Befehl, welcher 5000ms abwartet...

Code:
 import java.awt.*;
 import java.awt.event.*;
 import java.applet.Applet;



 public class viereck extends Applet
 {
  public void paint(Graphics g)
  {
   for (int i=0;i<100 ;i++)
   {
    g.setColor(Color.red);
    g.fillRect(20+i,20,120+i,120);
    g.setColor(Color.white);
    g.fillRect(0+i,20,20+i,120);

    try
    {
     Thread.sleep(100);
    }
    catch (InterruptedException e)
    {
     e.printStacktrace(); // Fehlermeldung ausgeben im Falle einer InterruptedException
    }
   }
  }
 }

Evtl. solltest Du Dir die entsprechende Stelle der Java API anschauen:
http://java.sun.com/javase/6/docs/api/java/lang/Thread.html#sleep(long)

Dort steht unter anderem, welche Exceptions dieser Befehl wirft... Wenn Du nicht weisst, was Exceptions sind und wie man mit Ihnen umgeht, solltest Du Dich darüber erstmal einlesen. Z. B. hier:

http://www.galileocomputing.de/open...08_001.htm#mj629aba1939df9485c69f15d6e54b33ab
 

Landei

Top Contributor
Mal so aus'm Kopp:

Code:
public class Viereck extends Applet {
  private pos = 0;

  public Viereck() {
     new Thread(){
        public void run() {
           while(pos < 100) try {
               sleep(500);
               pos++;
               Viereck.this.invalidate();
               Viereck.this.repaint();
            } catch(InterruptedException e) {
               //egal
            } 
        }
     }.start();
  }

  public void paint(Graphics g) {
      g.setColor(Color.red);
      g.fillRect(20+pos,20,120+pos,120);
      g.setColor(Color.white);
      g.fillRect(0+pos,20,20+pos,120);
  }

}

Ich denke es ist keine gute Idee, in der paint-Methode zu warten, sonst blockiert das u.U. die ganze GUI. Zwar ist sleep kein *aktives* Warten, aber ich kann mir trotzdem nicht vorstellen, dass das koscher ist...
 

moormaster

Top Contributor
Wenn du einen Thread hast, der nur eine Variable entsprechend langsam hochzählt, erreichst du aber nicht das Gewünschte :D Du musst das Applet dann auch regelmäßig auffordern, sich neu zu zeichnen.
 

Landei

Top Contributor
Stimmt. Aber innerhalb paint in einer for-Schleife zu kreisen, ist auch nicht das Wahre... Ich korrigiere es oben.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
A 2D Array Magisches Viereck Java Basics - Anfänger-Themen 4
L Magisches Viereck - Probleme mit Arrays Java Basics - Anfänger-Themen 3
P Viereck mit Sterne - Anfänger bittet um Kritik und Anregung Java Basics - Anfänger-Themen 11
R Viereck zeichnen über TextField-Eingabe /ActionListener Java Basics - Anfänger-Themen 9
A Viereck erstellen und Webcamtracking Java Basics - Anfänger-Themen 6
K JPanel, JFrame, paint() und wo ist mein Viereck ? Java Basics - Anfänger-Themen 19
Tino1993 Ellipse über draw Funktion ohne spur wandern lassen Java Basics - Anfänger-Themen 6
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
O Punkte auf einem Kreis "wandern" lassen Java Basics - Anfänger-Themen 3
K Durch eine HashMap wandern? Java Basics - Anfänger-Themen 2
A Buchstaben auslesen lassen vom Scanner Java Basics - Anfänger-Themen 18
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
H Minimum und Maximum ausgeben lassen Java Basics - Anfänger-Themen 7
H Leere Zeilen in Textdatei löschen lassen Java Basics - Anfänger-Themen 5
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
I Verschiedenen WebApp kommunizieren lassen Java Basics - Anfänger-Themen 1
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
julian0507 Wörter einlesen lassen und rückwärts ausgeben Java Basics - Anfänger-Themen 7
B Robot auf virtuellem Desktop laufen lassen? Java Basics - Anfänger-Themen 4
M Wie lassen sich Konstanten in Bedingung stellen? Java Basics - Anfänger-Themen 1
M Wie lassen sich Objektkonstanten initialisieren, wenn sie eine Bedingung erreichen? Java Basics - Anfänger-Themen 6
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
H For-Schleife bis Index von Eingabe laufen lassen Java Basics - Anfänger-Themen 24
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
Hallolu Pong-Spiel: Schläger schneller werden lassen Java Basics - Anfänger-Themen 9
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
W User zwischen Optionen wählen lassen Java Basics - Anfänger-Themen 1
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
W Anzahl der Zeilen ausgeben lassen Java Basics - Anfänger-Themen 20
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
AGW App programmiert lassen, aber Änderungen vornehmen Java Basics - Anfänger-Themen 13
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
M Auf MainJFrame Panels anzeigen lassen Java Basics - Anfänger-Themen 19
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12
I Klasse selbst fortlaufend nummerieren lassen Java Basics - Anfänger-Themen 11
V_Fynn03 Kontostand anzeigen lassen von einer anderen Klasse Java Basics - Anfänger-Themen 3
L Symbo Rätsel lösen lassen Java Basics - Anfänger-Themen 3
A Breakout-Spiel , Ball mit Platten abprallen lassen Java Basics - Anfänger-Themen 1
H For-Schleife für 60 sekunden laufen lassen Java Basics - Anfänger-Themen 1
T Klassen Den Wert aus Array lesen lassen Java Basics - Anfänger-Themen 12
N Wie kann ich einen String wieder zusammensetzen und ausgeben lassen? Java Basics - Anfänger-Themen 9
M Dijkstra Algorithmus in Graphen auf mehrere verschiedene Knoten anwenden lassen Java Basics - Anfänger-Themen 11
J Kapselung Array in Set ändern und in Main ausgeben lassen Java Basics - Anfänger-Themen 4
CptK Best Practice Klassendiagramm aus fertigen Klassen erstellen lassen Java Basics - Anfänger-Themen 2
L 10-Stellige Zahl hochzählen lassen Java Basics - Anfänger-Themen 1
T Klassen Klassenübergreifende Objekte erstellen lassen Java Basics - Anfänger-Themen 5
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
B Threads 2 Threads gleichzeitig laufen lassen Java Basics - Anfänger-Themen 1
J Einfaches Quadrat auf der Console ausgeben lassen Java Basics - Anfänger-Themen 7
I Methoden Schleife immer wieder durchlaufen lassen Java Basics - Anfänger-Themen 15
A ArrayList - size() nur nach bestimmtem index anzeigen lassen Java Basics - Anfänger-Themen 13
B mir nur die Gesamtzahl von einzigartigen Strings aus Array ausgeben lassen Java Basics - Anfänger-Themen 5
karlmasutra OOP Inhalt eines Array ausgeben lassen Java Basics - Anfänger-Themen 8
M Methoden Zwei Methoden in einem Program laufen lassen...aber wie? Java Basics - Anfänger-Themen 2
M Methoden zwei methoden gleichzeitig laufen lassen Java Basics - Anfänger-Themen 4
SchmidiMC Methoden Random in Methode neu generieren lassen Java Basics - Anfänger-Themen 1
O Methoden 3 Methoden gleichzeitig laufen lassen in der Console Java Basics - Anfänger-Themen 2
MR._FIRE_Flower Ordner im Explorer öffnen lassen Java Basics - Anfänger-Themen 2
J Java-Dateien lassen sich nicht editieren Java Basics - Anfänger-Themen 46
nightsky_ Mehrdimensionales Array mit flatMap() ausgeben lassen Java Basics - Anfänger-Themen 6
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
N Minimum ausgeben lassen Java Basics - Anfänger-Themen 5
H Path2D zerlegen und Objekt drauf "laufen" lassen Java Basics - Anfänger-Themen 11
O Klassen Objektnamen für Methodenaufrauf einlesen lassen Java Basics - Anfänger-Themen 2
J Schleife schlafen lassen Java Basics - Anfänger-Themen 4
RowdyN Methoden Befehle in zufälliger Reihenfolge ausführen lassen Java Basics - Anfänger-Themen 5
L Javaprogramm nach ausführung des gesammten Cods neu beginnen lassen Java Basics - Anfänger-Themen 9
R Erste Schritte 3 Variablen hochzählen lassen Java Basics - Anfänger-Themen 1
F Input/Output Text einlesen lassen Java Basics - Anfänger-Themen 14
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
A Array im Array einzeln printen lassen? Java Basics - Anfänger-Themen 26
R Funktionen Synchron laufen lassen Java Basics - Anfänger-Themen 10
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
R Threads aufeinander warten lassen? Java Basics - Anfänger-Themen 10
P Ungerade Zahlen ausgeben lassen zwischen Spannweite zweier eingegeben zahlen Java Basics - Anfänger-Themen 6
C Tannenbaum auf der Konsole ausgeben lassen Java Basics - Anfänger-Themen 12
C Alle Zweierpotenzen bis 2^10 ausgeben lassen Java Basics - Anfänger-Themen 15
W Input/Output Modulo Wert speichern und ausgeben lassen Java Basics - Anfänger-Themen 3
W Erste Schritte Zweidimensionales Array - Gerade Zahlen anzeigen lassen Java Basics - Anfänger-Themen 3
F Java BlueJ Dinge verschwinden lassen Java Basics - Anfänger-Themen 2
J Objekt ausgeben lassen Java Basics - Anfänger-Themen 6
Z Erste Schritte Klassennamen ausgeben lassen Java Basics - Anfänger-Themen 2
E Muster auf der Konsole ausgeben lassen (Schleifen) Java Basics - Anfänger-Themen 7
J JPG in JFrame anzeigen lassen Java Basics - Anfänger-Themen 3
L0MiN Input/Output Wie kann ich Kompilierfehler richtig ausgeben lassen (Runtime)? Java Basics - Anfänger-Themen 1
S mit Java HTML Button drücken "lassen" Java Basics - Anfänger-Themen 8
M Erste Schritte Code zur Laufzeit ändern lassen Java Basics - Anfänger-Themen 3
C DoublyLinkedList - Gerade zahlen ausgeben lassen Java Basics - Anfänger-Themen 2
S OOP Werte von Vektoren mit 3 Variablen ausgeben lassen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben