1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

repaint während Thread läuft

  • poochie
  • 13. Dezember 2010 um 16:24
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • poochie
    Punkte
    105
    Beiträge
    14
    • 13. Dezember 2010 um 16:24
    • #1

    Hallo, ich habe ein Problem mit einer Aufgabe, es geht im groben darum ein (simples) billardspiel zu programmieren, dazu habe ich ein JPanel Tisch welches das ganze zeug zeichnet, diese klasse besitzt ein objekt der klasse Ball. Ball implementiert Runnable und führt die bewegung des balles in der run()-methode aus (ändert dessen position forlaufend). Wenn ich nun das ganze ausführe dann seh ich nur wo sich der ball zu beginn und zu ende befindet. Wo mache ich hier was falsch, muss ich da den thread kurz anhalten weil es sonst zu schnell geht?!


    Zitat


    Thread t = new Thread(this.ball);

    t.start();
    while(t.isAlive()){
    this.repaint();
    }

    Alles anzeigen
  • Ramses13
    Punkte
    164
    Beiträge
    31
    • 14. Dezember 2010 um 00:54
    • #2

    Deine Schleife blockiert wohl den Thread, der für das Zeichnen verantwortlich ist (ist derselbe, der Events abarbeitet). repaint stellt nämlich nur einen Auftrag für das Neu-Zeichnen in eine Warteschlange, es ist aber kein Thread da, der diese Warteschlange abarbeitet.
    Lösung: Entweder das repaint in den Ball, oder separater Thread für das repaint (inkl. Wartepausen, ansonsten geht die Prozessorlast gegen 100 %).

  • Ringding
    Punkte
    1.237
    Beiträge
    244
    • 14. Dezember 2010 um 07:39
    • #3

    Es ist ja anscheinend eh ein eigener Thread. poochie, ja klar wird’s im Thread zu schnell gehen. Du musst das von der Uhrzeit abhängig machen. Überleg dir, wie lange die ganze Animation dauern soll, und dann kannst du dir im Thread anhand der Startzeit und der aktuellen Zeit ausrechnen, wie weit der Ball schon sein soll.

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum