Ok, also habe ich ein einfaches Programm erstellt, das den Wert jedes Mal, wenn auf eine Schaltfläche geklickt wird, addiert. Jetzt möchte ich hinzufügen "Auto" Taste Funktion, um den Wert des Zählers zu erhöhen, wenn die Schaltfläche "Auto" angeklickt wird. Ich habe Probleme mit ihm habe, weil es nicht jeden Zählerwert auf dem Bildschirm machen, anstatt das Wert-Updates, wenn die Schleife durchgeführt wird .. Hier ist mein Code: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));
}
}
});
}
}
Beachten Sie, dass ich bin ein Anfänger ... Alle Hilfe geschätzt :)
Was ist die Frage? – Sello
Was * genau * soll die Auto-Taste tun? –
Ich denke, [Swing Timer] (http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html) wird dies lösen. – Azad