Java实现的动态数字时钟功能示例【显示世界时间】

时间:2022-09-03 15:34:32

本文实例讲述了java实现的动态数字时钟功能。分享给大家供大家参考,具体如下:

构建:

1. clock继承 jframe 为运行页面
2. clocktext 测试类 创建 clock 对象

运行效果:

Java实现的动态数字时钟功能示例【显示世界时间】

具体实现:

一、clock类 

  • 四个jpnal 三个放时间 最后一个放日期
  • 放时间的三个jpnal 分别加入 地点 时间 按钮
  • 最后一个按钮添加日期

具体实现如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
public class clock extends jframe {
    private jpanel jpanelbeijing;
    private jpanel jpanelnewyork;
    private jpanel jpanellondom;
    private jpanel jpaneldate;
    private boolean beijingthreadflag_isstart = true;
    private boolean newyorkthreadflag_isstart = true;
    private boolean londonthreadflag_isstart = true;
    public clock() {
        // todo auto-generated constructor stub
        jpanelbeijing = new jpanel();
        jpanelnewyork = new jpanel();
        jpanellondom = new jpanel();
        jpaneldate = new jpanel();
        inirelations();
        inilayout();
        jframeclick();
        setvisible(true);
        setsize(480, 225);
        setlocationrelativeto(null);
    }
    private void inilayout() {
        jpanelbeijing.setlayout(new gridlayout(3, 1));
        jpanelnewyork.setlayout(new gridlayout(3, 1));
        jpanellondom.setlayout(new gridlayout(3, 1));
    }
    // 关系
    private void inirelations() {
        this.add(borderlayout.west, jpanelbeijing);
        this.add(borderlayout.center, jpanelnewyork);
        this.add(borderlayout.east, jpanellondom);
        this.add(borderlayout.south, jpaneldate);
        font placefont = new font("楷体", font.bold, 36);
        jlabel jlabelbeijing = new jlabel("北京时间");
        jlabelbeijing.setfont(placefont);
        jpanelbeijing.add(jlabelbeijing);
        setwestpanel();
        jlabel jlabelnewyork = new jlabel("纽约时间");
        jlabelnewyork.setfont(placefont);
        jpanelnewyork.add(jlabelnewyork);
        setcenterpanel();
        jlabel jlabellondon = new jlabel("伦敦时间");
        jlabellondon.setfont(placefont);
        jpanellondom.add(jlabellondon);
        seteastpanel();
        setdatepanel();
    }
    private void setwestpanel() {
        // add time for southpanel
        jlabel jlabeltime = new jlabel("加载中.");
        jlabeltime.setfont(new font("宋体", font.bold, 30));
        timer timeaction = new timer(1000, new actionlistener() {
            public void actionperformed(actionevent e) {
                long timemillis = system.currenttimemillis();
                // 转换日期显示格式
                simpledateformat time = new simpledateformat("hh:mm:ss ");
                jlabeltime.settext(time.format(new date(timemillis)));
            }
        });
        timeaction.start();
        jpanelbeijing.add(jlabeltime);
        button button = new button("北京暂停");
        button.addactionlistener(new actionlistener() {
            @override
            public void actionperformed(actionevent e) {
                // todo auto-generated method stub
                if (beijingthreadflag_isstart) {
                    timeaction.stop();
                    button.setlabel("北京继续");
                    beijingthreadflag_isstart = false;
                } else {
                    timeaction.start();
                    button.setlabel("北京暂停");
                    beijingthreadflag_isstart = true ;
                }
            }
        });
        jpanelbeijing.add(button);
    }
    private void setcenterpanel() {
        // add time for southpanel
        jlabel jlabeltime = new jlabel("加载中.");
        jlabeltime.setfont(new font("宋体", font.bold, 30));
        timer timeaction = new timer(1000, new actionlistener() {
            public void actionperformed(actionevent e) {
                long timemillis = system.currenttimemillis();
                // 转换日期显示格式
                simpledateformat time = new simpledateformat("hh:mm:ss ");
                jlabeltime.settext(time.format(new date(timemillis - 13 * 60 * 60 * 1000)));
            }
        });
        timeaction.start();
        jpanelnewyork.add(jlabeltime);
        button button = new button("纽约暂停");
        button.addactionlistener(new actionlistener() {
            @override
            public void actionperformed(actionevent e) {
                // todo auto-generated method stub
                if (newyorkthreadflag_isstart) {
                    timeaction.stop();
                    button.setlabel("纽约继续");
                    newyorkthreadflag_isstart = false;
                } else {
                    timeaction.start();
                    button.setlabel("纽约暂停");
                    newyorkthreadflag_isstart = true ;
                }
            }
        });
        jpanelnewyork.add(button);
    }
    private void seteastpanel() {
        // add time for southpanel
        // jlabel jlabeldate = new jlabel("date");
        jlabel jlabeltime = new jlabel("加载中.");
        jlabeltime.setfont(new font("宋体", font.bold, 30));
        timer timeaction = new timer(1000, new actionlistener() {
            public void actionperformed(actionevent e) {
                long timemillis = system.currenttimemillis();
                // simpledateformat date = new simpledateformat("yyyy 年 mm 月 dd
                // 日 ");
                // jlabeldate.settext(" 当前日期: " + date.format(new
                // date(timemillis)));
                simpledateformat time = new simpledateformat("hh:mm:ss ");
                jlabeltime.settext(time.format(new time(timemillis - 8 * 60 * 60 * 1000)));
            }
        });
        timeaction.start();
        jpanellondom.add(jlabeltime);
        button button = new button("伦敦暂停");
        button.addactionlistener(new actionlistener() {
            @override
            public void actionperformed(actionevent e) {
                // todo auto-generated method stub
                if (londonthreadflag_isstart) {
                    timeaction.stop();
                    button.setlabel("伦敦继续");
                    londonthreadflag_isstart = false;
                } else {
                    timeaction.start();
                    button.setlabel("伦敦暂停");
                    londonthreadflag_isstart = true ;
                }
            }
        });
        jpanellondom.add(button);
        // jpanellondom.add(jlabeldate);
    }
    private void setdatepanel() {
        // add time for southpanel
        jlabel jlabeldate = new jlabel("加载中.");
        timer timeaction = new timer(1000, new actionlistener() {
            public void actionperformed(actionevent e) {
                long timemillis = system.currenttimemillis();
                 simpledateformat date = new simpledateformat("yyyy 年 mm 月 dd 日 ");
                 jlabeldate.settext(" 当前日期: " + date.format(new date(timemillis)));
             }
        });
        timeaction.start();
        jpaneldate.add(jlabeldate);
    }
    private void jframeclick(){
        setdefaultcloseoperation(jframe.do_nothing_on_close);//设置不默认关闭
        addwindowlistener(new windowlistener() {
            @override
            public void windowopened(windowevent e) {
                // todo auto-generated method stub
            }
            @override
            public void windowiconified(windowevent e) {
                // todo auto-generated method stub
            }
            @override
            public void windowdeiconified(windowevent e) {
                // todo auto-generated method stub
            }
            @override
            public void windowdeactivated(windowevent e) {
                // todo auto-generated method stub
            }
            @override
            public void windowclosing(windowevent e) {
                // todo auto-generated method stub
                int x = joptionpane.showconfirmdialog(null, "确认退出么?", "友情提示", joptionpane.ok_cancel_option,
                        joptionpane.warning_message);
                if (x == 0) {
                    system.exit(0);
                }
            }
            @override
            public void windowclosed(windowevent e) {
                // todo auto-generated method stub
            }
            @override
            public void windowactivated(windowevent e) {
                // todo auto-generated method stub
            }
        });
    }
}

二、创建clocktext类用于测试

?
1
2
3
4
5
public class clocktext{
    public static void main(string[] args) {
        new clock();
    }
}

希望本文所述对大家java程序设计有所帮助。

原文链接:https://blog.csdn.net/qq_43377749/article/details/85096893