Countdown auf JPanel ausgeben

Status
Nicht offen für weitere Antworten.

scorpicore

Mitglied
Liebe Community,

ich stecke bei einem problem fest und komme nicht weiter:
ich programmiere zur zeit ein spiel und will auf einem panel neben dem panel in dem das spiel an sich abläuft einen countdown einbaun, damit jeder spieler nur 30 sekunden zum ziehen hat.
dies muss meiner meinung nach mit einem thread gelöst werden. ich kann auch mit diesem code:

Code:
package unbenannt1;

public class TCountdown extends Thread{



  public void run() {
    long Anfang = System.currentTimeMillis();
    long Jetzt = Anfang;
    int i = 0;
    while( (Jetzt - Anfang) < 30000) {
      System.out.println(30-i);
      i++;

      try {
        sleep(1000);
      }
      catch(InterruptedException e) {
      }
      Jetzt = System.currentTimeMillis();
    }

  }
}

den countdown ausgeben lassen, jedoch nur in der konsole.

doch nun das problem: wie kann ich den countdown auf einem panel ausgeben? der thread an sich kann ja nicht auf die instanz des jPanels, dass in meinem applet erzeugt wurde, zugreifen... und der thread kann auch nicht auf das applet zugreifen..
wie kann man das lösen?
kann man in eine klasse, die von JPanel erbt, einen Thread einbaun (mit implements Runnable)?
Vielleicht habe ich als kleiner java-n00bie auch einfach ne logische blockade.. ich freue mich auf jeden fall über antworten, die mir weiterhelfen könnten

mfg
scorpicore
 

dotlens

Top Contributor
arbeite mit implements runnable.

im konstruktor übergibst du dar graphische objekt, auf dem du den countdown ausgeben möchtest... vermutlich ein JLabel....

dann kannst du im Thread mit setText() immer schön die zeit ändern
 
B

Beni

Gast
Nicht ganz vollständig, aber etwa so könnte das aussehen:

Code:
public class Countdown extends JPanel{
  private volatile int time = 0;

  public void paintComponent( Graphics g ){
    int time = this.time;
    g.draw...
  }

  private class Counter extends Thread{
    public Counter(){
      time = 30;
    }

    public void run(){
      long end = System.currentTimeMillis() + time * 1000;

      while( System.currentTimeMillis() <= end ){
        try{
          Thread.sleep( 100 );
         }
         catch(...){...}

          time = (int)((end - System.currentTimeMillis()) / 1000);
          repaint();
      }
    }
  }
}
 
B

Benutzername

Gast
Hallo,

nimm einfach deine Thread Klasse und ändere sie so ab:

Code:
package unbenannt1; 

public class TCountdown extends Thread{ 

javax.swing.JPanel dasPanel;  //<------------------- Objektvariable JPanel machen

public TCountdown(javax.swing.JPanel dasPanel)
{
   this.dasPanel = dasPanel;    //<----------------- Konstruktor mit JPanel machen, so musst du dann natürlich
}                                          //                         auch das Objekt erstellen

  public void run() { 
    java.awt.Graphics g = dasPanel.getGraphics();  //<----------- GraphicsObjekt holen
    g.drawString("hallo");                                      //<-jetzt habe mer Zugriff auf JPanel
    long Anfang = System.currentTimeMillis(); 
    long Jetzt = Anfang; 
    int i = 0; 
    while( (Jetzt - Anfang) < 30000) { 
      System.out.println(30-i); 
      i++; 

      try { 
        sleep(1000); 
      } 
      catch(InterruptedException e) { 
      } 
      Jetzt = System.currentTimeMillis(); 
    } 

  } 
}
 

scorpicore

Mitglied
dankeschön @ all

@beni: wie starte ich dann den countdown?
Code:
Countdown jPanelCountdown = new Countdown();
jPanelCountdown.start()
geht ned
 
B

Beni

Gast
Da musst du sowas verwenden:

Code:
public class Countdown extends JPanel{
   ...

  public void start(){
    Counter c = new Counter();
    c.start();
  }
}

Vielleicht wäre es auch praktisch den Counter zu speichern, um ihn wieder unterbrechen zu können... :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Mit Countdown Midnestdauer für Teilaufgabenerledigung erzwingen Java Basics - Anfänger-Themen 8
S Stunden/Tage Countdown Java Basics - Anfänger-Themen 9
T Countdown erstellen Java Basics - Anfänger-Themen 7
T Countdown funktioniert nicht Java Basics - Anfänger-Themen 5
W Threads 1h 20min Countdown Java Basics - Anfänger-Themen 5
J Countdown Java Basics - Anfänger-Themen 3
D Erste Schritte Countdown mehrfach verwenden Java Basics - Anfänger-Themen 5
F countdown Java Basics - Anfänger-Themen 5
G Countdown von Heute bis Zieldatum Java Basics - Anfänger-Themen 4
N Countdown Java Basics - Anfänger-Themen 4
W Countdown auf "schwarze Blöcke" Java Basics - Anfänger-Themen 3
F Countdown und dann Aktion Java Basics - Anfänger-Themen 4
S Countdown 5min bis 0sek Java Java Basics - Anfänger-Themen 10
C countdown/timer/Zeit warten lassen Java Basics - Anfänger-Themen 14
D Countdown Funktion aus SQl Datenbank Java Basics - Anfänger-Themen 21
N countdown zähl problem Java Basics - Anfänger-Themen 5
O Countdown mit Erhöhung Java Basics - Anfänger-Themen 2
H Countdown Java Basics - Anfänger-Themen 10
T Countdown, der in der selben Zeile bleibt Java Basics - Anfänger-Themen 6
D Timer bzw. Countdown Java Basics - Anfänger-Themen 3
T countdown Methode mit Timer Java Basics - Anfänger-Themen 2
F Countdown Probleme Java Basics - Anfänger-Themen 9
R Countdown erstellen Java Basics - Anfänger-Themen 3
M Countdown in Java Java Basics - Anfänger-Themen 16
B Countdown zwischen 2 Zeitpunkten Java Basics - Anfänger-Themen 4
richis-fragen Optisch JPanel BorderLayout vertikaler Rand dicker als horizontaler Rand Java Basics - Anfänger-Themen 4
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
J Ein mit UI-Designer erstelltes JPanel einblenden Java Basics - Anfänger-Themen 0
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
Zeppi JPanel responsive Grid Java Basics - Anfänger-Themen 0
J JPanel in JScrollPanel Java Basics - Anfänger-Themen 4
Elyt JPanel als HintergrundBild Java Basics - Anfänger-Themen 7
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
O Swing JPanel Java Basics - Anfänger-Themen 4
CptK Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2
S JPanel wird nicht angezeigt Java Basics - Anfänger-Themen 1
D Animation JPanel Java Basics - Anfänger-Themen 1
M JLabels "verrutschen" beim übergeben von JPanel Java Basics - Anfänger-Themen 2
D Auf angeklicktes JPanel zugreifen Java Basics - Anfänger-Themen 5
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
D JPanel passt die Größe nicht an Java Basics - Anfänger-Themen 22
Y Webinhalt JPanel Java Basics - Anfänger-Themen 6
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
S JPanel variablenabhängig erstellen Java Basics - Anfänger-Themen 13
J Methoden Dinge auf einem JPanel paltzieren Java Basics - Anfänger-Themen 1
Z JPanel wird zweimal hinterinander gezeichnet.. Wieso? Java Basics - Anfänger-Themen 4
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
I A0-Format in jpanel anzeigen Java Basics - Anfänger-Themen 1
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
J Probleme mit eigenem JPanel (IDE Eclipse) Java Basics - Anfänger-Themen 4
S JPanel wird versetzt auf JFrame gelegt Java Basics - Anfänger-Themen 2
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
R Focus auf JPanel im Thread Java Basics - Anfänger-Themen 9
I Problem mit JPanel Java Basics - Anfänger-Themen 0
B JPanel ändert die Hintergrundfarbe nicht Java Basics - Anfänger-Themen 2
F Threads funktionieren auf JPanel nicht Java Basics - Anfänger-Themen 1
C JPanel in MessageDialog Java Basics - Anfänger-Themen 1
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
M Listener einerm JPanel hinzufuegen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
Q JPanel Java Basics - Anfänger-Themen 2
K Erste Schritte jpanel in einer klasse auslagern Java Basics - Anfänger-Themen 3
I Anfängerfrage JPanel repaint() Java Basics - Anfänger-Themen 6
N String auf JPanel bewegen Java Basics - Anfänger-Themen 6
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
S Layout mit JPanel in JScrollPanel funktioniert nicht Java Basics - Anfänger-Themen 3
S JPanel drucken -> PrinterException Java Basics - Anfänger-Themen 2
B JPanel -JTable Java Basics - Anfänger-Themen 2
H JPanel Hintergrund transparent setzen? Java Basics - Anfänger-Themen 10
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
L zoomen aus jpanel Java Basics - Anfänger-Themen 7
P Bekomme in meinen JPanel nur eine JComponente angezeigt Java Basics - Anfänger-Themen 7
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
R JFrame über einen JPanel Java Basics - Anfänger-Themen 5
I Veränderungen am JPanel vom JDialog aus Java Basics - Anfänger-Themen 6
F JPanel zu klein Java Basics - Anfänger-Themen 5
D GUI - Objekte in JPanel nach oben schieben Java Basics - Anfänger-Themen 2
S JPanel wird nicht eingefügt Java Basics - Anfänger-Themen 3
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
Kenan89 JPanel mit JTable Java Basics - Anfänger-Themen 9
I JPanel in JPanel Java Basics - Anfänger-Themen 2
A Zugriff auf Komponente innerhalb einer JPanel Java Basics - Anfänger-Themen 8
J Auf einem JPanel ein JFrame platzieren Java Basics - Anfänger-Themen 10
S JPanel anzeige Java Basics - Anfänger-Themen 2
propra Wie mache ich einem JPanel mein bereits instanziertes Model bekannt Java Basics - Anfänger-Themen 9
T Zugreifen auf JPanel Java Basics - Anfänger-Themen 4
K JPanel auslagern Java Basics - Anfänger-Themen 9
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben