CountdownTimer

dirkulesSGE

Mitglied
Hey Leute,
ich bin noch nicht ganz so versiert was Java angeht und benötige eure Hilfe
ich benutze Eclipse SDK 3.7.1 und habe eine Klasse programmiert, die das tut, was sie tun soll, sie zählt von 10 runter, man kann sie starten und stoppen
Allerdings möchte ich diese Funktion nun in einem anderen JAVA-Projekt nutzen, eines das mit dem Windowbuilder gebaut wurde (JFrame).
Dieses besitzt 2 knöpfe und ein label und soll nun das selbe tun wie die Klasse StopWatch.
Ich danke euch jetzt schon einmal für eure Hilfe :)
Chris

Java:
import java.awt.*;
import java.awt.event.*;

public class StopWatch extends Frame {

  private Button start;
  private Button stop;
  private Label ausgabe;
  private boolean running = false;
  private int HS = 0;
  private int sek = 10;
  private int min = 0;
  private int HSs = 0;

  public StopWatch()
  {
    super();
    start = new Button("Start");
    stop = new Button("Stop");
    ausgabe = new Label();
    start.setBounds(100,100,100,50);
    stop.setBounds(220, 100, 100, 50);
    ausgabe.setBounds(130, 175, 250, 50);
    add(start);
    add(stop);
    add(ausgabe);
    ausgabe.setFont(new Font(Font.SERIF,Font.PLAIN, 35));
    start.addActionListener(new ButtonListenerStart());
    stop.addActionListener(new ButtonListenerStop());
    addWindowListener(new WindowLauscher());
  }

  class ButtonListenerStart implements ActionListener
  {
    public void actionPerformed(ActionEvent e)
    {
      if(!running)
      {
        running = true;
        UhrzeitThread uhr = new UhrzeitThread();
        uhr.start();
      }
    }
  }

  class ButtonListenerStop implements ActionListener
  {
    public void actionPerformed(ActionEvent e)
    {running = false;}
  }

  class WindowLauscher extends WindowAdapter
  {
    public void windowClosing(WindowEvent e)
    {
      running = false;
      System.exit(0);
    }
  }

  class UhrzeitThread extends Thread
  {
    public void run()
    {
      while(running)
      {
        try{Thread.sleep(10);}catch(Exception e){}
        if(HS > 0){HS--;}else{HS = 99;if(sek > 0){sek--;}else {sek = 59;if(min > 0){min--;}}}
        if(sek==0 && min==0 && HS==0){stop();}
        Ausgabe();
      }
    }
  }
  
  public void Ausgabe()
  {
	  if(HS>=0 && HS<10){HSs=0;}
	  else if(HS>=10 && HS<20){HSs=1;}
	  else if(HS>=20 && HS<30){HSs=2;}
	  else if(HS>=30 && HS<40){HSs=3;}
	  else if(HS>=40 && HS<50){HSs=4;}
	  else if(HS>=50 && HS<60){HSs=5;}
	  else if(HS>=60 && HS<70){HSs=6;}
	  else if(HS>=70 && HS<80){HSs=7;}
	  else if(HS>=80 && HS<90){HSs=8;}
	  else if(HS>=90 && HS<100){HSs=9;}
	  
      if(min==0 && sek<10){ausgabe.setText("0"+sek+"."+HSs);}
      else if(min==0 && sek>9){ausgabe.setText(sek+"."+HSs);}
      else if(sek>9){ausgabe.setText("0"+min+":"+sek);}
      else if(sek<10){ausgabe.setText("0"+min+":"+"0"+sek);}
  }

  public static void main(String[] args){
    StopWatch uhr = new StopWatch();
    uhr.setBounds(0, 0, 500, 300);
    uhr.setVisible(true);
  }
}
 

dirkulesSGE

Mitglied
Java:
timer = new Timer(speed, this);
timer.setInitialDelay(pause);
timer.start();

für this wird die methode aufgerufen die wiederholt werden soll
pause ist das intervall in dem es weiderholt werden soll, wenn pause = 1000 wird es jede sekunde wiederholt
und was ist speed???:L
 

Fab1

Top Contributor
steht doch genau in der API was das für Befehle sind.

Timer(int delay, ActionListener listener)
Creates a Timer that will notify its listeners every delay milliseconds.
 

dirkulesSGE

Mitglied
OK funktioniert alles, vielen dank :)
hab mich wohl einfach n bissl blöd angestellt :lol:


kann mir einer von euch noch sagen, wie der befehl lautet eine externe datei zu öffnen, das heißt, ich klicke auf einen knopf und dann öffnet er ne excel datei von der festplatte
was muss dann in actioperformed... rein ?
 

Neue Themen


Oben