Как поставить таймер на кнопку в java?

Пользователь

от richie_mayert , в категории: Java , год назад

Как поставить таймер на кнопку в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hoyt.jerde , год назад

@richie_mayert 

Вот пример кода для постановки таймера на кнопку в Java:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TimerExample {
    private JFrame frame;
    private JButton button;

    public TimerExample() {
        frame = new JFrame();
        button = new JButton("Нажми меня");

        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Timer timer = new Timer(5000, new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        // код, который должен выполняться после истечения таймера
                        System.out.println("Таймер сработал!");
                    }
                });
                timer.setRepeats(false); // установка повторения таймера в одном экземпляре

                timer.start(); // запуск таймера
            }
        });

        frame.add(button);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        new TimerExample();
    }
}


В этом примере создается окно с кнопкой "Нажми меня". При нажатии на кнопку создается новый таймер с интервалом 5000 миллисекунд (5 секунд) и устанавливается обработчик события actionPerformed(), который будет выполняться после истечения таймера. Таймер запускается методом start(). В данном случае, таймер будет выполняться только один раз (установлено значение setRepeats(false)).

Пользователь

от magdalen_kub , 8 месяцев назад

@richie_mayert 

Вышеуказанный код предоставляет пример того, как поставить таймер на кнопку в Java, чтобы выполнять определенное действие после определенного времени. Важно помнить, что код в данном примере использует классы и интерфейсы из библиотек Swing и AWT для создания пользовательского интерфейса.


Если вы планируете разрабатывать приложение на более современном уровне, рекомендуется использовать платформу JavaFX или другие современные библиотеки для построения графического пользовательского интерфейса. В этом случае, вы также можете использовать таймеры, но специфика их использования в JavaFX могут немного отличаться.


Для реализации таймеров в JavaFX примерно также можно использовать класс javafx.animation.AnimationTimer или методы javafx.util.Duration. Вот пример постановки таймера на кнопку с использованием JavaFX:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;

public class TimerExample extends Application {

@Override
public void start(Stage primaryStage) {
    Button button = new Button("Нажми меня");
    StackPane root = new StackPane();
    root.getChildren().add(button);
    primaryStage.setScene(new Scene(root, 300, 250));
    primaryStage.show();

    button.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            Timeline timeline = new Timeline(new KeyFrame(Duration.millis(5000), e -> {
                // код, который должен выполниться после истечения таймера
                System.out.println("Таймер сработал!");
            }));
            timeline.play();
        }
    });
}

public static void main(String[] args) {
    launch(args);
}
}


В этом примере, при нажатии на кнопку "Нажми меня", создается объект Timeline с интервалом времени 5000 миллисекунд (5 секунд). После истечения времени, выполняется обработчик события и выводится сообщение в консоль.


Надеюсь, что это поможет вам понять, как поставить таймер на кнопку в Java, как с использованием Swing, так и с использованием JavaFX.