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 😀


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
 
- 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
 
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:
 
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 😉
 
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 😉
 
Hm - der Thread laäuft doch - der wird doch in der start-Methode gestartet? ???:L (Vielleicht täsuch' ich mich auch)
 
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.

Zurück
Oben