I
IDler
Gast
Hallo!
Also ich habe in einer Klasse "MyThread" die run methode für den Thread erstellt. Wenn ich das in einer Testklasse anwenden will (per ActionListener auf einen Button), dann funktioniert es leider nicht.
Hier der code:
Und die Klasse MyThread:
[/code]
Also ich habe in einer Klasse "MyThread" die run methode für den Thread erstellt. Wenn ich das in einer Testklasse anwenden will (per ActionListener auf einen Button), dann funktioniert es leider nicht.
Hier der code:
Code:
public class BanditGUI extends JFrame{
private JLabel zahlen1, zahlen2, zahlen3;
private JButton start, stop1, stop2, stop3;
MyThread thread1 = new MyThread(zahlen1);
MyThread thread2 = new MyThread(zahlen2);
MyThread thread3 = new MyThread(zahlen3);
public BanditGUI(String title){
super(title);
getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER,10,10));
getContentPane().add(createContent());
pack();
}
/**
* In dieser Methode wird hauptsächlich der Inhalt des Fensters gestaltet.
*
* @return panel Das Panel mit seinen Komponenten
*/
public JPanel createContent(){
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3,3,20,20));
//Die Labels mit den Zahlen
zahlen1 = new JLabel("");
zahlen2 = new JLabel("");
zahlen3 = new JLabel("");
//Buttons mit Beschriftung.
start = new JButton("Start");
stop1 = new JButton("Stop");
stop2 = new JButton("Stop");
stop3 = new JButton("Stop");
//Die Komponenten werden dem Panel hinzugefügt
panel.add(new JLabel());
panel.add(start);
panel.add(new JLabel());
panel.add(zahlen1);
panel.add(zahlen2);
panel.add(zahlen3);
panel.add(stop1);
panel.add(stop2);
panel.add(stop3);
return panel;
}
public static void main(String args[]){
BanditGUI gui = new BanditGUI("Bandit");
gui.setVisible(true);
}
class MyActionListener implements ActionListener{
public void actionPerformed(ActionEvent e){
Object button = e.getSource();
if(button == start){
thread1.start(); thread2.start(); thread3.start();
}
if(button == stop1){
thread1.stop();
}
if(button == stop2){
thread1.stop();
}
if(button == stop3){
thread1.stop();
}
}
}
}
Und die Klasse MyThread:
Code:
import javax.swing.*;
import java.lang.Thread;
public class MyThread extends Thread{
private JLabel label;
public MyThread(JLabel label){
this.label = label;
}
public void run(){
int i = 0;
while(true){
label.setText(""+i++);
}
}
}