Reaktionstest klappt leider nicht richtig

Status
Nicht offen für weitere Antworten.

SchulJAVA

Mitglied
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 :D


Code:
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
 
S

SlaterB

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

Mitglied
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:
 
S

SlaterB

Gast
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 ;)
 
S

SlaterB

Gast
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

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

foobar

Top Contributor
SchulJAVA hat gesagt.:
mhh ok irgendwie steh ich aufn schlauch wie starte ich das denn dann?? :bahnhof:
so:

Code:
public static void main(String args[])
{
      Reaktionstest test = new Reaktionstest();
      test.start();
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben