Dobrze, więc stworzyłem prosty program, który dodaje wartość do liczenia za każdym razem, gdy kliknięto przycisk. Teraz chciałbym dodać funkcję przycisku "Auto", aby zwiększyć wartość licznika po kliknięciu przycisku "Auto". Mam problemy z nim, ponieważ nie uczyni każdą wartość licznika na ekranie, zamiast dostawać wartość, gdy pętla jest zrobione .. Oto mój kod:Przycisk 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));
}
}
});
}
}
Należy pamiętać, że jestem początkujący ... Cała pomoc doceniona :)
Jakie jest pytanie? – Sello
Co * dokładnie * oznacza przycisk automatyczny? –
Myślę, że [Swing Timer] (http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html) rozwiąże to. – Azad