Candyman66
Legacy Member
Io,
Voor school hebben we enkele tryouts gekregen om te maken ivm threads in java. Het zou normaal geen probleem mogen zijn maar ik zit toch gedeeltelijks vast. Het doel van het programma is een klein tellerke te maken met behulp van een thread.Het getal komt op een JPanel te staan in een frame, en in de thread wordt dus telkens om de seconde een variabele verhoogt met 1.
Ik heb volgende code zelf al gemaakt:
import javax.swing.*;
public class Counter implements Runnable {
private int sleepTime;
private int count = 1;
private JLabel countLabel;
public Counter(JLabel label) {
sleepTime = 1000;
setCountLabel(label);
voerUit();
}
public JLabel getCountLabel() {
return countLabel;
}
public void setCountLabel(JLabel countLabel) {
this.countLabel = countLabel;
}
public void run() {
try
{
Thread.sleep(sleepTime);
countLabel.setText(Integer.toString(count));
count++;
}
catch (InterruptedException exception)
{
exception.printStackTrace();
}
}
public void voerUit() {
while (count != 5) {
run();
}
}
}
public class TestCounter extends JFrame {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread thread1;
Counter counter1;
JLabel label = new JLabel();
counter1 = new Counter(label);
thread1 = new Thread(counter1);
thread1.start();
JFrame frame = new JFrame("Counter 1");
frame.add(label);
frame.setSize(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Het probleem is als volgt, als ik het uitvoer dan laat hij pas bij de laatste verhoging het frame zien met jpanel en de tekst.
Iemand die mijn fout misschien ziet of raad weet hiermee ?
Voor school hebben we enkele tryouts gekregen om te maken ivm threads in java. Het zou normaal geen probleem mogen zijn maar ik zit toch gedeeltelijks vast. Het doel van het programma is een klein tellerke te maken met behulp van een thread.Het getal komt op een JPanel te staan in een frame, en in de thread wordt dus telkens om de seconde een variabele verhoogt met 1.
Ik heb volgende code zelf al gemaakt:
import javax.swing.*;
public class Counter implements Runnable {
private int sleepTime;
private int count = 1;
private JLabel countLabel;
public Counter(JLabel label) {
sleepTime = 1000;
setCountLabel(label);
voerUit();
}
public JLabel getCountLabel() {
return countLabel;
}
public void setCountLabel(JLabel countLabel) {
this.countLabel = countLabel;
}
public void run() {
try
{
Thread.sleep(sleepTime);
countLabel.setText(Integer.toString(count));
count++;
}
catch (InterruptedException exception)
{
exception.printStackTrace();
}
}
public void voerUit() {
while (count != 5) {
run();
}
}
}
public class TestCounter extends JFrame {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread thread1;
Counter counter1;
JLabel label = new JLabel();
counter1 = new Counter(label);
thread1 = new Thread(counter1);
thread1.start();
JFrame frame = new JFrame("Counter 1");
frame.add(label);
frame.setSize(300,300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Het probleem is als volgt, als ik het uitvoer dan laat hij pas bij de laatste verhoging het frame zien met jpanel en de tekst.
Iemand die mijn fout misschien ziet of raad weet hiermee ?


)