您的位置:首页 > 其它

在页面显示系统当前时间

2016-12-15 15:46 429 查看
有一段时间没写博客了,这段时间里并没有瞎忙其他事情每晚自己仍然坚持跑步和写代码。生活就是这样

今天遇到标题的这个问题,然后自己试着写了一下,发现原来看似平常的事物背后都有不为人知的一面。废话不多说了,上代码。

方法一:

package com.december15;

import javax.swing.*;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class TimeShower1 {

//定义一个方法用来显示界面
public JLabel show(){
JFrame jf=new JFrame();
JPanel jp1=new JPanel();
JLabel jl1=new JLabel();

jp1.add(jl1);
jf.add(jp1);
jf.setBounds(300, 300, 400, 300);
jf.setVisible(true);

return jl1;

}

public static void main(String[] args) {
// TODO Auto-generated method stub

TimeShower1 ts=new TimeShower1();

JLabel jlb=ts.show();
Timer timer = new Timer();

TimerTask tt=new TimerTask() {

@Override
public void run() {
// TODO Auto-generated method stub
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String s=sdf.format(date);
jlb.setText(s);
}
};

timer.schedule(tt, new Date(), 1000);

}

}


解释一下上述代码,首先定义了一个TimeShower1的方法,该方法用来设置显示界面,同时返回一个JLabel类型的对象,当然这是后话。

至于为什么要返回这样一个对象,这里简单解释一下:我们在页面上显示一个固定的时间是很简单的。要想显示动态时间,就需要我们动态修改jlabel里面的内容。没错,要动态修改。怎么修改呢?是不是需要拿到这样一个对象,然后修改就可以了。这里可以简单理解成返回之后,拿到这个对象的引用然后对其进行修改然后再返回过去。

这一块其实是刚开始想了好久没迈过去的坎。怎么动态修改时间,上述代码里说的很清楚。

方法二(张老师说可能有点问题),这里也拿出来和大家分享一下吧

package com.december15;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;
import java.util.Timer;

import javax.swing.*;

public class TimerShower3 extends JFrame {

// 定义我需要的控件
JPanel jp1;
JLabel jl1;

// 构造函数初始化控件
public TimerShower3() {
jp1 = new JPanel();
jl1 = new JLabel();

jp1.add(jl1);
this.add(jp1);

this.setBounds(300, 300, 400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
reflash();

}

// 定义一个方法动态更改jl1
public void reflash() {
Timer timer = new Timer();
// 下面开始刷新jl1

TimerTask tt = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss ");
String s = sdf.format(date);
jl1.setText(s);
}
};
timer.schedule(tt, new Date(), 1000);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
TimerShower3 t3 = new TimerShower3();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: