简单的计时器实现(JFrame)
生活随笔
收集整理的這篇文章主要介紹了
简单的计时器实现(JFrame)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
計時器
問題描述
代碼:import java.awt.*; import java.awt.event.*;import javax.swing.*;public class Main extends JFrame { JButton jbtStart, jbtStop, jbtReset; int hour = 0, minute = 0, second = 0; String time = "0"+hour + ":0" + minute + ":0" + second; Font font = new Font("TimesRoman", Font.BOLD, 40); TimePanel timePanel; Timer timer;public Main() { timePanel = new TimePanel(); jbtStart = new JButton("Start"); jbtStop = new JButton("Stop"); jbtReset = new JButton("Reset"); jbtStart.addActionListener(new ActionListener() {@Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub timer.start(); }}); jbtStop.addActionListener(new ActionListener() {@Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub timer.stop(); }}); jbtReset.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub hour = 0; minute = 0; second = -1; timer.restart(); }}); JPanel p1 = new JPanel();p1.add(jbtStart); p1.add(jbtStop); p1.add(jbtReset);this.add(p1, BorderLayout.SOUTH); this.add(timePanel, BorderLayout.CENTER); }class TimePanel extends JPanel { TimePanel() { timer = new Timer(100, new ActionListener() {@Override public void actionPerformed(ActionEvent arg0) { second++; if (second > 59) { second = 0; minute++; } if (minute > 59) { minute = 0; hour++; } if(second< 10 && hour>=10 && minute>=10) time = hour + ":" + minute + ":0" + second; else if(second>= 10 && hour<10 && minute>=10) time = "0"+hour + ":" + minute + ":" + second; else if(second>= 10 && hour>=10 && minute<10) time = +hour + ":0" + minute + ":" + second; else if(second< 10 && hour<10 && minute<10) time = "0"+hour + ":0" + minute + ":0" + second; else if(second< 10 && hour<10 && minute>=10) time = "0"+hour + ":" + minute + ":0" + second; else if(second>= 10 && hour<10 && minute<10) time = "0"+hour + ":0" + minute + ":" + second; else if(second< 10 && hour>=10 && minute<10) time = hour + ":0" + minute + ":0" + second; else time = hour + ":" + minute + ":" + second; // TODO Auto-generated method stub repaint(); }}); }protected void paintComponent(Graphics g) { super.paintComponent(g);g.setFont(font); int stringWidth = g.getFontMetrics().stringWidth(time); int xCoordinate = getWidth() / 2 - stringWidth / 2; int yCoordinate = getHeight() / 2 + stringWidth / 4; g.drawString(time, xCoordinate, yCoordinate); } }public static void main(String[] args) { JFrame frame = new Main(); frame.setTitle("Timer"); frame.setSize(400, 200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }}
轉載于:https://www.cnblogs.com/qusay/p/4170265.html
總結
以上是生活随笔為你收集整理的简单的计时器实现(JFrame)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构之线索二叉树
- 下一篇: andriod 自写的view 获得屏幕