Threads Thread startet nicht

Vogelmitschnauze007

Neues Mitglied
Hallo liebe Community,
wir haben die Hausaufgabe bekommen eine Stoppuhr (mit start,stop und reset) zu implementieren. Das Programm kompiliert einwandfrei, aber der Thread startet nicht. Darum hier meine Bitte um eine kleine Hilfestellung.

Danke schonmal im Vorraus

Java:
import javax.swing.*;
import java.lang.Thread;
import java.lang.Runnable;
import java.awt.*;
import java.awt.event.*;

public class Stoppuhr extends JFrame implements ActionListener,Runnable{
    int zahl1=0;
    private Thread thread;
    static boolean running1;
    private JLabel anzeige1;
    private JButton startButton1, stopButton1, resetButton1;
   
    public static void main(String[] args){
        new Stoppuhr();
        Thread thread = new Thread();
        thread.start();
        System.out.println("Der Thread wurde gestartet.");
    }

    @Override
    public void run(){
        try{
            while(running1){
                System.out.println("Thread läuft in run()-methode");
                Thread.sleep(1000);
                anzeige1.setText(""+zahl1++);
            }
        }catch(Exception exc){
            System.out.println("Da ist etwas schief gelaufen.");
        }
    }

    public static void setRunning1(boolean mystate1){
        running1=mystate1;
    }

    public void actionPerformed(ActionEvent e){
        if(e.getSource()==startButton1){
            System.out.println("Button 1(start) wurde gedrückt.");
            setRunning1(true);
        }
        if(e.getSource()==stopButton1){
            System.out.println("Der StopButton1 wurde gedrückt.");
            setRunning1(false);
        }
    }

    public Stoppuhr(){
        setTitle("Stoppuhr");
        setLocationRelativeTo(null);
        setSize(800,400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new GridLayout(4,1));
       
        //Create the Buttons
        startButton1 = new JButton("Start");
        startButton1.addActionListener(this);
        stopButton1 = new JButton("Stop");
        stopButton1.addActionListener(this);
        resetButton1 = new JButton("Reset");
       
        //Create the Labels
        anzeige1 = new JLabel("0");
        anzeige1.setHorizontalAlignment(JLabel.CENTER);
       
        add(anzeige1);
        add(startButton1);
        add(stopButton1);
        add(resetButton1);
       
        setVisible(true);
    }
   
}
 

KonradN

Super-Moderator
Mitarbeiter
Du hast ja auch nur eine Instance von Thread erstellt. Der alleine macht ja noch nichts.

Du hast ja ein Runnable - schau einfach einmal in die Dokumentation von Thread, wie du den ein Runnable geben kannst zur Ausführung.
 

Jw456

Top Contributor
Du versuchst zwar deinen Thread in der main Methode zu starten. Aber was wird der machen. Die statische variable runinig1 wird false sein. Und deine while ist zu Ende und auch dein Thread.
Im übrigen kannst du eine Thread Instanz nicht mehrfach starten. Ist er einmal durchlaufen brauchst du ein neues Objekt.
 

Neue Themen


Oben