Hallo,
ich hab ein kleineres verständnisproblem mit folgendem code. und zwar möchte ich, das nachdem ich den start button gedrückt habe, die countdown
schleife endlos, bzw. solange läuft bis man den stop button drückt. nach jedem countdown durchlauf, soll die zahl variable um eins erhöht werden.
mein verständnisproblem bezieht sich momentan darauf, das ich nicht weiss an welcher stelle ich die
endlosschleife einbauen müsste, das er zum einen richtig zählt und nicht nach jedem durchlauf wieder
beendet und wartet das man erneut den start button drückt.
für vorschläge um dieses problem zu lösen wäre ich echt dankbar. ich brauche keinen geänderten
source, denkanstösse wie sich das problem lösen lassen helfen mir weit mehr
die zählervariable und meine verschiedenen ansätze zur endlosschleife habe ich in diesem code
herausgenommen, damit es nicht verwirrt.
ich hab ein kleineres verständnisproblem mit folgendem code. und zwar möchte ich, das nachdem ich den start button gedrückt habe, die countdown
schleife endlos, bzw. solange läuft bis man den stop button drückt. nach jedem countdown durchlauf, soll die zahl variable um eins erhöht werden.
mein verständnisproblem bezieht sich momentan darauf, das ich nicht weiss an welcher stelle ich die
endlosschleife einbauen müsste, das er zum einen richtig zählt und nicht nach jedem durchlauf wieder
beendet und wartet das man erneut den start button drückt.
für vorschläge um dieses problem zu lösen wäre ich echt dankbar. ich brauche keinen geänderten
source, denkanstösse wie sich das problem lösen lassen helfen mir weit mehr
die zählervariable und meine verschiedenen ansätze zur endlosschleife habe ich in diesem code
herausgenommen, damit es nicht verwirrt.
Java:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class RefreshingCounter extends JFrame{
private static final long serialVersionUID = 1L;
JLabel jLabel1, jLabel2;
JButton jButton1, jButton2;
int zahl, counter, count;
Timer timer;
public RefreshingCounter(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(250, 100);
setTitle("Refreshing Counter");
setLayout(new GridLayout(2, 2, 5, 5));
jLabel1 = new JLabel ("Zahl: " + zahl, SwingConstants.CENTER);
add(jLabel1);
jLabel2 = new JLabel ("Counter: " + counter, SwingConstants.CENTER);
add(jLabel2);
jButton1 = new JButton ("Start");
add(jButton1);
jButton2 = new JButton ("Stop");
add(jButton2);
event e = new event();
jButton1.addActionListener(e);
jButton2.addActionListener(e);
setVisible(true);
}
public class event implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jButton1){
start();
}
else if (e.getSource() == jButton2){
stop();
}
}
}
public void start(){
count = 3;
jLabel2.setText("Counter: " + count);
TimeClass tc = new TimeClass(count);
timer = new Timer(1000, tc);
timer.start();
}
public void stop(){
timer.stop();
}
public class TimeClass implements ActionListener {
int counter;
public TimeClass(int counter){
this.counter = counter;
}
public void actionPerformed(ActionEvent tc){
counter--;
if(counter >= 1) {
jLabel2.setText("Counter: " + counter);
} else {
jLabel2.setText("Done!");
Toolkit.getDefaultToolkit().beep();
timer.stop();
}
}
}
public static void main (String[] args){
new RefreshingCounter();
}
}