# Reaktionstest klappt leider nicht richtig



## SchulJAVA (25. Mrz 2008)

Hallo Leute,

Ich habe ein kleines Problem ich muss für meine Abschlussprüfung einen Reaktionstest basteln soweit sind auch keine Fehler mehr aber trotzdem klappt es nicht richtig. Den wenn man es start sieht man nix , es ist bestimmt ein Fehler den ich nicht sehe wie immer^^. Ich bedanke mich jetzt schon für die Antworten  



```
import java.applet.*;
import java.awt.*;
import java.util.Random;
import java.awt.event.*;


public class Reaktionstest extends Frame implements Runnable,MouseListener

{
   // Attribute der Klasse
   
   long time1;
   long time2;
   Label lb = new Label();
   Random generator = new Random();
   int gestartet=0;
   
   // Hauptmethode
   public static void main(String args[])
   {
      Reaktionstest test = new Reaktionstest();
   }
   
   // Konstruktor der Klasse
   public Reaktionstest()
   {
      super("Beta 1.0");
	  setSize(700,700);
	  setLocation(100,100);
	  setVisible(true);
	  addWindowListener(new WindowAdapter() 
      {
         public void windowClosing(WindowEvent event)
         {
            System.exit(0);
         }
      });
      setLayout(null); // Layout zuweisen
      lb.setBounds(440,160,10,20);
      
      addMouseListener(this);
      add(lb);
      
    }
    
    public void start()
      {
          Thread th = new Thread (this);
          th.start ();
      } 
    
    public void run()
      {
      lb.setText("Sobald LOS ausgeben wird müssen sie eine beliebige Maus Taste drücken");
      //lb.setText(" Auf die Plätze............... Fertig...............");
       gestartet=1;
       
      try
      {
      int tmp = generator.nextInt (4000) + 1000;
      Thread.sleep (tmp);
      lb.setText("LOS");
      time1 = System.currentTimeMillis();
      gestartet=2;
      }
      catch (InterruptedException ex)
      {
          lb.setText("Error");
      }
      }
      public void mouseClicked(MouseEvent e)
      {
          if (gestartet==2)
          {
           time2 = System.currentTimeMillis()-time1;
           gestartet=0;
           lb.setText("super du hast " + time2 + " sekunden gebraucht");
          }
          else
          
            if (gestartet==1)
            {
              lb.setText("zu früh");
            }
          
      }
      public void mouseEntered(MouseEvent e)
      {
      }
      public void mouseExited(MouseEvent e)
      {
      }
      public void mousePressed(MouseEvent e)
      {
      }
      public void mouseReleased(MouseEvent e)
      {
      }  
}
```

mfg Daniel


----------



## SlaterB (25. Mrz 2008)

- Komponenten, die nach setVisible(true) eingefügt werden, siehst du nicht,

- dein Label ist viel zu klein, in Breite 10 passt kaum ein Buchstabe

- du startest nie den Thread


----------



## SchulJAVA (25. Mrz 2008)

ok das mit dem Label klar da hab ich nicht darf geachtet^^ 
aber wie ist das gemeint mit dem Thread und mit dem setVisible(true) ??? :bahnhof:


----------



## SlaterB (25. Mrz 2008)

erst die GUI zusammenbauen, dann setVisible(true), nicht andersrum

---------

ein Thread läuft nur dann wenn er gestartet wird, du startest ihn nie, daher läuft er nie,
so ist das mit dem Thread gemeint


----------



## SchulJAVA (25. Mrz 2008)

ok das mit dem setVisible(true); hab ich geändert aber man sieht immer noch nix  :autsch:


----------



## SlaterB (25. Mrz 2008)

wenn in einem Label nix drinsteht, dann sieht man es nicht,
gib dem Label einen Anfangswert: 
Label lb = new Label("Hello World"); 

oder sorge dafür, dass dein Thread anläuft


----------



## Marco13 (25. Mrz 2008)

Hm - der Thread laäuft doch - der wird doch in der start-Methode gestartet?  ???:L (Vielleicht täsuch' ich mich auch)


----------



## SlaterB (25. Mrz 2008)

wenn jemand die start-Methode aufrufen würde, dann ja


----------



## SchulJAVA (30. Mrz 2008)

mhh ok irgendwie steh ich aufn schlauch wie starte ich das denn dann?? :bahnhof:


----------



## foobar (30. Mrz 2008)

SchulJAVA hat gesagt.:
			
		

> mhh ok irgendwie steh ich aufn schlauch wie starte ich das denn dann?? :bahnhof:


so:


```
public static void main(String args[])
{
      Reaktionstest test = new Reaktionstest();
      test.start();
}
```


----------



## SchulJAVA (30. Mrz 2008)

ok vielen dank^^


----------

