Таймер в Swing - Java (240784)
Формулировка задачи:
не могу разобраться, как поставить таймер что бы по прошествию времени указанном в jTextField1 нажималась кнопка
Решение задачи: «Таймер в Swing»
textual
Листинг программы
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.FocusEvent;
- import java.awt.event.FocusListener;
- public class MainButton2 extends JFrame {
- private JButton jButton;
- private JButton jButton2;
- private JTextField jTextField;
- private JTextField jTextField2;
- private Timer timer;
- private int counter;
- private int counterMax;
- private final int MAX_TIME = 200;
- public MainButton2() throws HeadlessException {
- timer = new Timer(20, new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- counter++;
- jTextField.setText("count:" + counter);
- if (counter >= counterMax) {
- counter = 0;
- timer.stop();
- jButton2.doClick();
- }
- }
- });
- jButton = new JButton("Start Timer");
- jButton2 = new JButton("Press Me");
- jButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- timer.start();
- if (counterMax == 0) {
- counterMax = MAX_TIME;
- }
- jTextField2.setText("" + counterMax);
- }
- });
- jButton2.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- JOptionPane.showMessageDialog(getContentPane(), " Таймер сработал! ");
- }
- });
- jTextField = new JTextField(10);
- jTextField2 = new JTextField(10);
- jTextField2.addFocusListener(new FocusListener() {
- @Override
- public void focusGained(FocusEvent e) {
- }
- @Override
- public void focusLost(FocusEvent e) {
- try {
- counterMax = Integer.parseInt(((JTextField) e.getSource()).getText());
- } catch (NumberFormatException ex) {
- JOptionPane.showMessageDialog(getContentPane(), " Wrong value, enter time! ");
- }
- }
- });
- jTextField2.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- try {
- counterMax = Integer.parseInt(((JTextField) e.getSource()).getText());
- } catch (NumberFormatException ex) {
- JOptionPane.showMessageDialog(getContentPane(), " Wrong value, enter time! ");
- }
- }
- });
- JPanel jp = new JPanel(new GridLayout(4, 4));
- jp.add(new JLabel("Enter Time: "));
- jp.add(jTextField2);
- jp.add(new JLabel("Status:"));
- jp.add(jTextField);
- jp.add(jButton);
- jp.add(jButton2);
- add(jp, BorderLayout.NORTH);
- }
- public static void main(String[] args) {
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- JFrame jFrame = new MainButton2();
- jFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
- jFrame.setSize(400, 200);
- jFrame.setLocationRelativeTo(null);
- jFrame.setVisible(true);
- }
- });
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д