Как создать и вывести периодически тикающий таймер в jLabel1? NetBeans - Java

Узнай цену своей работы

Формулировка задачи:

Т.е. нужно в абсолютно пустой форме JFrame, в метке, секунды чтобы тикали. А по нажатии на кнопку это время фиксировалось. Т.е. пустой проект с меткой и кнопкой.
Забыл сразу фрагмент кода добавить. Чтобы на каком-то примере было, я сделал вот так(смотрю старую свою программу):
Листинг программы
  1. timer=new Timer(1000, this);
  2. timer.start();
Листинг программы
  1. public void actionPerformed(ActionEvent e) {
  2. jLabel3.setText("Время: " + curtime2 + " минут " + curtime +" секунд");
  3. curtime++;
  4. if (curtime>=60){
  5. curtime2++;
  6. curtime = 0;
  7. }
  8. if (curtime2>=30) jLabel3.setText("Сделайте перерыв!");
  9. }
Секунды и минуты - curtime. Сделал 2 кнопки - просто stop и start
Листинг программы
  1. timer.start();
Листинг программы
  1. timer.stop();
  2. jLabel4.setText("" + curtime)
А вот когда хочу вывести секунды в метку при нажатии на кнопку, время останавливается/дальше тикает, но присвоения метке не происходит.

Решение задачи: «Как создать и вывести периодически тикающий таймер в jLabel1? NetBeans»

textual
Листинг программы
  1. public class MainTimer extends JFrame {
  2.     JPanel jPanel = new JPanel();
  3.     private JButton jButton = new JButton("Start");
  4.     private JButton jButton2 = new JButton("Stop");
  5.     private JLabel jLabel3 = new JLabel();
  6.     private JLabel jLabel4 = new JLabel();
  7.  
  8.     private int curtime = 0;
  9.     private int curtime2 = 0;
  10.  
  11.     private Timer timer = new Timer(1000, new ActionListener() {
  12.         @Override
  13.         public void actionPerformed(ActionEvent e) {
  14.             jLabel3.setText("Время: " + curtime2 + " минут " + curtime + " секунд");
  15.             curtime++;
  16.             if (curtime >= 60) {
  17.                 curtime2++;
  18.                 curtime = 0;
  19.             }
  20.             if (curtime2 >= 30) {
  21.                 jLabel3.setText("Сделайте перерыв!");
  22.             }
  23.             timer.start(); // перезапуск таймера
  24.         }
  25.     });
  26.  
  27.  
  28.     public MainTimer() throws HeadlessException {
  29.         jButton.addActionListener(new ActionListener() {
  30.             @Override
  31.             public void actionPerformed(ActionEvent e) {
  32.                 System.out.println("Timer started.");
  33.                 timer.start();
  34.             }
  35.         });
  36.  
  37.         jButton2.addActionListener(new ActionListener() {
  38.             @Override
  39.             public void actionPerformed(ActionEvent e) {
  40.                 System.out.println("Timer stopped.");
  41.                 jLabel4.setText("   seconds: "+curtime);
  42.                 timer.stop();
  43.             }
  44.         });
  45.  
  46.         setLayout(new FlowLayout());
  47.         jLabel3.setText("Время: " + curtime2 + " минут " + curtime + " секунд");
  48.         jLabel4.setText("   seconds: "+curtime);
  49.         jPanel.setLayout(new GridLayout(2,2));
  50.         jPanel.add(jLabel3);
  51.         jPanel.add(jLabel4);
  52.         jPanel.add(jButton);
  53.         jPanel.add(jButton2);
  54.         add(jPanel,BorderLayout.NORTH);
  55.  
  56.     }
  57.  
  58.     public static void main(String[] args) {
  59.  
  60.         MainTimer jFrame = new MainTimer();
  61.  
  62.         SwingUtilities.invokeLater(new Runnable() {
  63.             @Override
  64.             public void run() {
  65.                 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  66.                 jFrame.setSize(500,400);
  67.                 jFrame.setVisible(true);
  68.             }
  69.         });
  70.     }
  71. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы