在页面显示系统当前时间

有一段时间没写博客了,这段时间里并没有瞎忙其他事情每晚自己仍然坚持跑步和写代码。生活就是这样
今天遇到标题的这个问题,然后自己试着写了一下,发现原来看似平常的事物背后都有不为人知的一面。废话不多说了,上代码。

方法一:

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();
    }

}

猜你喜欢

转载自blog.csdn.net/Mattscl/article/details/53671341