简单的倒计时器 您所在的位置:网站首页 有可以倒计时的软件嘛 简单的倒计时器

简单的倒计时器

2023-06-12 02:50| 来源: 网络整理| 查看: 265

该计时器应用程序允许用户输入一个名称和倒计时时间,并启动、停止和重置计时器。当用户启动计时器时,程序会启动一个单独的线程来执行倒计时功能,并在文本框中显示剩余时间。当时间减少到0时,计时器将停止,并且所有按钮将被设置为可用状态,以便用户重新设置计时器。此外,该应用程序还包括一些逻辑,用于验证用户输入的时间格式,并在需要时显示错误消息。总之,该计时器应用程序提供了一个简单但实用的计时器,可以用于各种计时需求。

package TimerSe; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TimerSec extends JFrame implements ActionListener { private JTextField nameField, timeField; private JTextArea logArea; private JButton startButton, stopButton, resetButton; private int minutes = 0, seconds = 0, mminutes = 0, mseconds = 0; private boolean running = false; public TimerSec() { setTitle("Timer"); setSize(400, 300); setDefaultCloseOperation(EXIT_ON_CLOSE); setLocation((1920 - 800) / 2, (1080 - 600) / 2); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(5, 2)); JLabel nameLabel = new JLabel("Name:"); nameField = new JTextField(); JLabel timeLabel = new JLabel("Time (mm:ss):"); timeField = new JTextField(); logArea = new JTextArea(5, 20); logArea.setEditable(false); startButton = new JButton("Start"); startButton.addActionListener(this); stopButton = new JButton("Stop"); stopButton.addActionListener(this); resetButton = new JButton("Reset"); resetButton.addActionListener(this); panel.add(nameLabel); panel.add(nameField); panel.add(timeLabel); panel.add(timeField); panel.add(new JLabel()); panel.add(new JLabel()); panel.add(startButton); panel.add(stopButton); panel.add(resetButton); panel.add(new JLabel()); getContentPane().add(panel, BorderLayout.NORTH); getContentPane().add(new JScrollPane(logArea), BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == startButton) { if (!running) { try { minutes = Integer.parseInt(timeField.getText().split(":")[0]); seconds = Integer.parseInt(timeField.getText().split(":")[1]); mminutes = minutes; mseconds = seconds; } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Invalid time format. Please enter mm:ss."); return; } if (minutes < 0 || seconds < 0 || seconds >= 60) { JOptionPane.showMessageDialog(null, "Invalid time format. Please enter mm:ss."); return; } running = true; startButton.setEnabled(false); stopButton.setEnabled(true); resetButton.setEnabled(false); nameField.setEditable(false); timeField.setEditable(false); logArea.append(nameField.getText() + ": " + minutes + " minutes " + seconds + " seconds\n"); Thread t1 = new Thread(new Runnable() { public void run() { while (running && minutes >= 0 && seconds >= 0) { try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (seconds == 0) { if (minutes == 0) { running = false; startButton.setEnabled(true); stopButton.setEnabled(false); resetButton.setEnabled(true); nameField.setEditable(true); timeField.setEditable(true); break; } else { minutes--; seconds = 59; } } else { seconds--; } timeField.setText(String.format("%02d:%02d", minutes, seconds)); } } }); t1.start(); } } else if (source == stopButton) { running = false; startButton.setEnabled(true); stopButton.setEnabled(false); resetButton.setEnabled(true); nameField.setEditable(true); timeField.setEditable(true); } else if (source == resetButton) { running = false; minutes = mminutes; seconds = mseconds; timeField.setText(String.format("%02d:%02d", minutes, seconds)); startButton.setEnabled(true); stopButton.setEnabled(false); resetButton.setEnabled(false); nameField.setEditable(true); timeField.setEditable(true); } } } package TimerSe; public class Run { public static void main(String[] args) { TimerSec TimerSec = new TimerSec(); TimerSec.setVisible(true); } }



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有