没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论







2012211207 王孟哲 2012210995
一.倒计时器
(一)界面设计
textArea_hour:用来输入小时以及显示剩余小时
textArea_minute:用来输入分钟以及显示剩余分钟
textArea_second:用来输入秒钟以及显示剩余秒钟
Button_start:“ 开始”按钮,用来控制计时的开始
Button_reset:“ 重置”按钮,既可以在倒计时进行中将其打断,使其归零,也可以当时间到后
点击它,然后再输入时间,再次计时
label:位于按钮的下方,用来报错以及提示“时间到”
label_1,label_2:其内容都是“:”,是时、分、秒之间的分隔,这两个 JLabel 的内容不会变
(二)程序设计
程序设计分为两大部分,一是点击“开始”后执行的,二是点击“重置”后执行的
1.点击“开始”后执行的
(1)首先,将 textArea_hour,textArea_minute,textArea_second 中的字符串转换为整数
String s1,s2,s3;
s1=textArea_hour.getText();
s2=textArea_minute.getText();
s3=textArea_second.getText();
int hour,minute,second;
hour=Integer.parseInt(s1);
minute=Integer.parseInt(s2);
second=Integer.parseInt(s3);
(2)只有当分和秒是 0 到 59 的整数并且小时是 0 以上整数才算输入正确,如果输入不正
确,直接报错

if(!
((hour>=0)&&(minute>=0)&&(minute<=59)&&(second>=0)&&(second<=59))){
label.setText("输入错误,请点击“重置”按钮");
return;
}
(3)如果输入正确,则执行倒计时,为了让时,分,秒三个整数协调工作,定义了一个函
数,private void jianyi(int h, int m, int s),h 代表小时,m 代表分钟,s 代表秒,代码及注释如下
private void jianyi(int h, int m, int s) {
if(s==0){
if(m==0){//如果秒,分都是 0,则小时减 1,分秒得 59
h--;
m=s=59;
}
else{//秒是 0,分不是 0,则分减一,秒得 59
m--;
s=59;
}
}
else{//秒不是 0,则秒减 1 即可
s--;
}
String sh,sm,ss;
sh=Integer.toString(h);
sm=Integer.toString(m);
ss=Integer.toString(s);//将时分秒这三个整数转换为字符串
/*为了让输出恰好两位,如果整数是一位数(即其转换成的字符串
长度为 1)则输出 0 加上字符串,如果整数就是两位数,则直接输
出字符串*/
if(sh.length()==1)
textArea_hour.setText("0"+sh);
else
textArea_hour.setText(sh);

if(sm.length()==1)
textArea_minute.setText("0"+sm);
else
textArea_minute.setText(sm);
if(ss.length()==1)
textArea_second.setText("0"+ss);
else
textArea_second.setText(ss);
//时间到的提示
if(s==0&&m==0&h==0){
label.setText("时间到,请点击“重置”按钮");
}
}
倒计时即每秒执行一次 jianyi 函数,直到时分秒均为 0。在 public class daojishiqi extends
JDialog 中定义了 private Timer t=null;在函数 public void actionPerformed(ActionEvent e)中输入了
语句
if(hour==0&&minute==0&&second==0){
t.stop();
t=null;
return;
}
if(t==null){
t=new Timer(1000,this);
t.start();
}
jianyi(hour,minute,second);
使 this 一 秒 一 次 , 从 而 使 得 jianyi 函 数 一 秒 执 行 一 次 , 直 到
(hour==0&&minute==0&&second==0)时,执行 t.stop();,结束计时
( 4 )
“开始”按钮
的完整代码
But
ton_start.ad
dActionList
ener(new
ActionListener() {
public void actionPerformed(ActionEvent e) {
String s1,s2,s3;
s1=textArea_hour.getText();
s2=textArea_minute.getText();
s3=textArea_second.getText();

int hour,minute,second;
hour=Integer.parseInt(s1);
minute=Integer.parseInt(s2);
second=Integer.parseInt(s3);
if(hour==0&&minute==0&&second==0){
t.stop();
t=null;
return;
}
if(!((hour>=0)&&(minute>=0)&&(minute<=59)&&(second>=0)&&(second<=59))){
label.setText("输入错误,请点击“重置”按钮");
return;
}
//int totaltimes=hour*3600+minute*60+second;
if(t==null){
t=new Timer(1000,this);
t.start();
}
jianyi(hour,minute,second);
}
private void jianyi(int h, int m, int s) {
if(s==0){
if(m==0){
h--;
m=s=59;
}
else{
m--;
s=59;
}
}
else{
s--;
}
String sh,sm,ss;
sh=Integer.toString(h);
sm=Integer.toString(m);
ss=Integer.toString(s);
if(sh.length()==1)
textArea_hour.setText("0"+sh);
else
textArea_hour.setText(sh);
if(sm.length()==1)
textArea_minute.setText("0"+sm);
else

textArea_minute.setText(sm);
if(ss.length()==1)
textArea_second.setText("0"+ss);
else
textArea_second.setText(ss);
if(s==0&&m==0&h==0){
label.setText("时间到,请点击“重置”按钮");
}
}
});
2.点击“重置”后执行的
public void actionPerformed(ActionEvent e) {
textArea_hour.setText("00");
textArea_minute.setText("00");
textArea_second.setText("00");
label.setText("");
}
(1)正 在
计 时 的 时
候 点 击 重
置
计 时 的 时
候,t=new
Timer(1000,this);
this 函 数 一 秒 执 行 一 次 , 由 于 点 击 重 置 使 得
textArea_hour.setText("00");textArea_minute.setText("00");textArea_second.setText("00"); 故再执行
this 就进入了
if(hour==0&&minute==0&&second==0){
t.stop();
t=null;
return;
}
从而结束了计时,使时分秒归零。
剩余51页未读,继续阅读
资源评论


雷斯上校
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
