Итак, я пытаюсь выяснить, как добавить паузы в карточную игру, чтобы заставить процессор действовать так, как будто они по очереди. Но есть слишком много кода, поэтому я думаю, что если мы продемонстрируем стратегию этого кода, это может сработать.Как заставить этот проект приостановиться в течение заданного промежутка времени после нажатия кнопки
Как сделать этот код паузой, скажем через 5 секунд после нажатия кнопки, и THEN распечатать сообщение.
public class TimerTest extends JFrame implements ActionListener{
private static final long serialVersionUID = 7416567620110237028L;
JTextArea area;
Timer timer;
int count; // Counts the number of sendings done by the timer
boolean running; // Indicates if the timer is started (true) or stopped (false)
public TimerTest() {
super("Test");
setBounds(30,30,500,500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
area = new JTextArea();
area.setBounds(0, 0, 500, 400);
add(area);
JButton button = new JButton("Click Me!");
button.addActionListener(this);
button.setBounds(200, 400, 100, 40);
add(button);
// Initialization of the timer. 1 second delay and this class as ActionListener
timer = new Timer(5000, this);
timer.setRepeats(true); // Send events until someone stops it
count = 0; // in the beginning, 0 events sended by timer
running = false;
System.out.println(timer.isRepeats());
setVisible(true); // Shows the frame
}
public void actionPerformed(ActionEvent e) {
if (! running) {
timer.start();
running = true;
}
// Writing the current time and increasing the cont times
area.append(Calendar.getInstance().getTime().toString()+"\n");
count++;
if (count == 10) {
timer.stop();
count = 0;
running = false;
}
}
public static void main(String[] args) {
// Executing the frame with its Timer
new TimerTest();
}
}
То, что я действительно хотел бы сделать это, чтобы иметь возможность вставить паузу в мой метод, который выполняет действия каждого процессора. Но похоже, что с классом Timer вам необходимо выполнить ваши действия после паузы в прослушивателе действий таймера. Я в основном смущен тем, почему Таймеру нужен агент действий. Мне не нужен таймер, чтобы повторить его после его завершения.
Если бы мне было лучше разместить мой собственный код, сообщите мне. Но я не уверен, какие части будут полезны, так как я не хочу иметь тонны кода в этом потоке.
Попробуйте добавить 'Thread.sleep (5000);'? –
Что случилось с Swing 'Timer'?Если вы установили его не повторяющимся, с задержкой '5000', он может вызвать другой метод для выполнения каких-либо действий, которые вы хотите ПОСЛЕ указанного периода времени? – MadProgrammer
@DarshanMehta Вы можете не знать об опасности и проблемах, связанных с использованием 'Thread.sleep' в Swing или JavaFX или просто о каких-либо интерфейсах пользовательского интерфейса, это не очень хорошая идея и для всех дополнительных проблем, которые могут возникнуть, вы не должны рекомендовать он, для этого случая использования – MadProgrammer