首页

java实现电子时钟(完整源代码)

java

2020-6-21

package com.mingrisoft.time;

import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Calendar;
import java.util.GregorianCalendar;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.EmptyBorder;
import javax.swing.UIManager;

public class ElectronicClock extends JFrame {
    
    /**
     * 
     */
    private static final long serialVersionUID = 3688891358876658465L;
    private JPanel contentPane;
    private ImageIcon colon = new ImageIcon("src/images/colon.png");
    private ImageIcon[] numbers = { new ImageIcon("src/images/0.png"), new ImageIcon("src/images/1.png"), new ImageIcon("src/images/2.png"), new ImageIcon("src/images/3.png"),
            new ImageIcon("src/images/4.png"), new ImageIcon("src/images/5.png"), new ImageIcon("src/images/6.png"), new ImageIcon("src/images/7.png"),
            new ImageIcon("src/images/8.png"), new ImageIcon("src/images/9.png") };
    private JLabel hour1Label;
    private JLabel hour2Label;
    private JLabel colon1Label;
    private JLabel minute1Label;
    private JLabel minute2Label;
    private JLabel colon2Label;
    private JLabel second1Label;
    private JLabel second2Label;
    
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Throwable e) {
            e.printStackTrace();
        }
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ElectronicClock frame = new ElectronicClock();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    
    /**
     * Create the frame.
     */
    public ElectronicClock() {
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowActivated(WindowEvent arg0) {
                do_this_windowActivated(arg0);
            }
        });
        setTitle("\u7535\u5B50\u65F6\u949F");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 350, 100);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(new GridLayout(1, 8, 5, 5));
        
        JPanel hour1Panel = new JPanel();
        contentPane.add(hour1Panel);
        
        hour1Label = new JLabel("");
        hour1Label.setHorizontalAlignment(SwingConstants.CENTER);
        hour1Panel.add(hour1Label);
        
        JPanel hour2Panel = new JPanel();
        contentPane.add(hour2Panel);
        
        hour2Label = new JLabel("");
        hour2Label.setHorizontalAlignment(SwingConstants.CENTER);
        hour2Panel.add(hour2Label);
        
        JPanel colon1Panel = new JPanel();
        contentPane.add(colon1Panel);
        
        colon1Label = new JLabel("");
        colon1Label.setHorizontalAlignment(SwingConstants.CENTER);
        colon1Panel.add(colon1Label);
        
        JPanel minute1Panel = new JPanel();
        contentPane.add(minute1Panel);
        
        minute1Label = new JLabel("");
        minute1Label.setHorizontalAlignment(SwingConstants.CENTER);
        minute1Panel.add(minute1Label);
        
        JPanel minute2Panel = new JPanel();
        contentPane.add(minute2Panel);
        
        minute2Label = new JLabel("");
        minute2Label.setHorizontalAlignment(SwingConstants.CENTER);
        minute2Panel.add(minute2Label);
        
        JPanel colon2Panel = new JPanel();
        contentPane.add(colon2Panel);
        
        colon2Label = new JLabel("");
        colon2Label.setHorizontalAlignment(SwingConstants.CENTER);
        colon2Panel.add(colon2Label);
        
        JPanel second1Panel = new JPanel();
        contentPane.add(second1Panel);
        
        second1Label = new JLabel("");
        second1Label.setHorizontalAlignment(SwingConstants.CENTER);
        second1Panel.add(second1Label);
        
        JPanel second2Panel = new JPanel();
        contentPane.add(second2Panel);
        
        second2Label = new JLabel("");
        second2Label.setHorizontalAlignment(SwingConstants.CENTER);
        second2Panel.add(second2Label);
    }
    
    private void getTime() {
        Calendar calendar = new GregorianCalendar();
        int hour = calendar.get(Calendar.HOUR_OF_DAY); // ��õ�ǰ��Сʱ
        int minute = calendar.get(Calendar.MINUTE); // ��õ�ǰ�ķ���
        int second = calendar.get(Calendar.SECOND); // ��õ�ǰ������
        hour1Label.setIcon(numbers[hour / 10]);// �����̻��Сʱ��һλͼƬ
        hour2Label.setIcon(numbers[hour % 10]);// �����������Сʱ�ڶ�λͼƬ
        minute1Label.setIcon(numbers[minute / 10]);// �����̻�÷��ӵ�һλͼƬ
        minute2Label.setIcon(numbers[minute % 10]);// �����������Сʱ�ڶ�λͼƬ
        second1Label.setIcon(numbers[second / 10]);// �����̻�����ӵ�һλͼƬ
        second2Label.setIcon(numbers[second % 10]);// �����������Сʱ�ڶ�λͼƬ
    }
    
    private class ClockRunnable implements Runnable {
        
        @Override
        public void run() {
            while (true) {
                getTime();
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
    protected void do_this_windowActivated(WindowEvent arg0) {
        colon1Label.setIcon(colon);
        colon2Label.setIcon(colon);
        new Thread(new ClockRunnable()).start();
    }
}

资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/.classpath , 232
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/.project , 379
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/com/mingrisoft/time/ElectronicClock$1.class , 802
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/com/mingrisoft/time/ElectronicClock$2.class , 750
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/com/mingrisoft/time/ElectronicClock$ClockRunnable.class , 1052
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/com/mingrisoft/time/ElectronicClock.class , 4388
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/0.png , 3038
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/1.png , 2977
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/2.png , 3023
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/3.png , 3004
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/4.png , 3148
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/5.png , 3030
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/6.png , 3031
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/7.png , 3103
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/8.png , 3019
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/9.png , 3023
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/bin/images/colon.png , 2930
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/com/mingrisoft/time/ElectronicClock.java , 6054
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/0.png , 3038
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/1.png , 2977
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/2.png , 3023
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/3.png , 3004
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/4.png , 3148
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/5.png , 3030
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/6.png , 3031
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/7.png , 3103
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/8.png , 3019
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/9.png , 3023
021 ╝≥╡Ñ╡─╡τ╫╙╩▒╓╙/src/images/colon.png , 2930
没有账号? 忘记密码?

社交账号快速登录