Hallo,
Habe ein paar Probleme mit dem Arbeiten mit Treads und dem ActionListener. Das Programm soll wie eine Stopuhr einfach jede Sekunde hochzählen und sich dabei per Buttuns Starten und Stopen lassen. Das funktioniert auch. Allerdings ebennur in der Console. Und ich will die Ausgabe des Zählers aber in dem textfield txtAusg haben. Hab schon ne ganze weile rum probiert, aber ohne nennenswerte Erfolge.:rtfm: ???:L
Hoffe ihr könnt mir helfen.
Dax
Habe ein paar Probleme mit dem Arbeiten mit Treads und dem ActionListener. Das Programm soll wie eine Stopuhr einfach jede Sekunde hochzählen und sich dabei per Buttuns Starten und Stopen lassen. Das funktioniert auch. Allerdings ebennur in der Console. Und ich will die Ausgabe des Zählers aber in dem textfield txtAusg haben. Hab schon ne ganze weile rum probiert, aber ohne nennenswerte Erfolge.:rtfm: ???:L
Java:
package Hans_Peter;
import Hans_Peter.Window;
import java.util.*;
public class Timer{
public static void main(String[] args){
Window w = new Window();
}//public static void main(String[] args)
}//public class Timer
Java:
package Hans_Peter;
import java.awt.*;
import javax.swing.*;
import Hans_Peter.MyActionListener;
public class Window extends Frame{
private static final long serialVersionUID = 1L;
public MyActionListener actionListener = new MyActionListener(this);
public MyWindowListener myWindowListener = new MyWindowListener();
//Bereich A
public TextArea txtAusg = new TextArea();
public Button btnStart = new Button("Start");
public Button btnPause = new Button("Pause");
public Button btnSchliessen = new Button("Schliessen");
public Window(){
super("Timer");
this.setSize(360,250);
this.setLayout(null);
this.addWindowListener(myWindowListener);
this.setBackground(Color.lightGray);
this.setVisible(true);
//Ausgabe Fenster
Font font = new Font("SansSerif",Font.PLAIN,20);
txtAusg.setFont(font.deriveFont(Font.PLAIN,40));
txtAusg.setBounds(50,50,260,100);
this.add(txtAusg);
//Button Start
btnStart.setBounds(50,170,80,25);
this.add(btnStart);
btnStart.addActionListener(actionListener);
//Button Pause
btnPause.setBounds(140,170,80,25);
this.add(btnPause);
btnPause.addActionListener(actionListener);
//Button Schliessen
btnSchliessen.setBounds(230,170,80,25);
this.add(btnSchliessen);
btnSchliessen.addActionListener(actionListener);
}//public Window()
}//public class Window
Java:
package Hans_Peter;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class test extends Thread{
public Window f;
test(Window f) {
this.f = f;
}
int i=0;
public void run(){
while ( ! isInterrupted() )
{
System.out.println("ich werd verrückt "+i);
i++;
//Problem
//Ausgabe in txtAusg von i
try
{
Thread.sleep( 1000 );
}
catch ( InterruptedException e )
{
interrupt();
System.out.println( "a sleep()" );
}
}
}
}
Java:
package Hans_Peter;
import java.awt.event.*;
import javax.swing.*;
public class MyActionListener extends Thread implements ActionListener{
public Window f;
MyActionListener(Window f) {
this.f = f;
}// MyActionListener(Window f)
Thread a = new test(f);
int firsttime=0;
public void actionPerformed(ActionEvent e){
if (e.getSource () == f.btnStart) {
if(firsttime==0){
a.start();
firsttime=1;
f.txtAusg.setText("bla");
}
a.resume();
}
if (e.getSource() == f.btnPause) {
a.suspend();
}
if (e.getSource() == f.btnSchliessen) {
a.stop();
System.exit(0);
}
}//public void actionPerformed(ActionEvent e)
}// public class MyActionListener implements ActionListener
Hoffe ihr könnt mir helfen.
Dax
Zuletzt bearbeitet: