# CountdownTimer



## dirkulesSGE (21. Jan 2012)

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


```
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);
  }
}
```


----------



## GUI-Programmer (21. Jan 2012)

Schon mal was von javax.swing.Timer gehört??? Siehe auch How to Use Swing Timers


----------



## dirkulesSGE (21. Jan 2012)

```
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


----------



## Gast2 (21. Jan 2012)

Steht alles in der API:
Timer (Java 2 Platform SE v1.4.2)


----------



## Fab1 (21. Jan 2012)

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 (21. Jan 2012)

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 ?


----------



## Fab1 (21. Jan 2012)

meinst du JFileChooser (Java 2 Platform SE 5.0) 


How to Use File Choosers (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)


----------



## HoaX (21. Jan 2012)

Ich denke ehr, er will Desktop#open


----------



## dirkulesSGE (21. Jan 2012)

ich möchte mit dem klick auf den knopf eine datei(excel) auf meiner festplatte öffnen


----------



## dirkulesSGE (21. Jan 2012)

How to open a PDF file in Java

das hier habe ich gefunden, aber das ist ja eine eigene klasse ???:L


----------



## dirkulesSGE (21. Jan 2012)

HoaX hat gesagt.:


> Ich denke ehr, er will Desktop#open



wie funktioniert das?


----------

