Итак, я сделал простую программу, которая добавляет значение к счетчику каждый раз, когда нажимается кнопка. Теперь я хотел бы добавить функцию «Авто», чтобы увеличить значение счетчика при нажатии кнопки «Авто». У меня возникли проблемы с ним, потому что он не будет оказывать каждое значение счетчика на экране, вместо обновления значений, когда цикл закончен .. Вот мой код:Button ActionListener
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.concurrent.TimeUnit;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Gui extends JFrame{
private static final long serialVersionUID = 1L;
private JButton uselesButton;
private JButton autoButton;
private FlowLayout layout;
private long counter = 0;
public Gui() {
super("Button");
layout = new FlowLayout(FlowLayout.CENTER);
this.setLayout(layout);
uselesButton = new JButton(String.format("Pressed %d times", counter));
add(uselesButton);
uselesButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
counter++;
uselesButton.setText(String.format("Pressed %d times", counter));
}
});
autoButton = new JButton("Auto");
add(autoButton);
autoButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
for(long i =0; i < 99999999;i++) {
try {
TimeUnit.MILLISECONDS.sleep(10);
} catch (InterruptedException e1) {
System.out.println("ERROR");
}
counter = i;
uselesButton.setText(String.format("Pressed %d times", counter));
}
}
});
}
}
Имейте в виду, что я новичок ... Вся помощь оценивалась :)
Что вопрос? – Sello
Что такое * точно * - кнопка авто, которая должна быть? –
Я думаю, что [Swing Timer] (http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html) решит это. – Azad