java 继承用Jpanel 能实现一个 获取系统时间吗? 自动更新

publicclassFoterextendsJPanel{}来一个程序。。学习学习... public class Foter extends JPanel{
}
来一个 程序。。学习学习
展开
 我来答
不爱唱歌
推荐于2016-03-11 · TA获得超过326个赞
知道小有建树答主
回答量:443
采纳率:0%
帮助的人:106万
展开全部

使用线程,线程中的run方法中安排一个无限循环,循环每秒sleep一下,循环每执行一次,就更改一下JPanel中的一个JLabel组件就行了。


示例:

import java.util.Calendar;
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class WorkTime extends JPanel{

private JLabel timeLabel = null;
private int hour;

public WorkTime() {
this(18);
}

public WorkTime(int hour) {
this.hour = hour;
timeLabel = new JLabel();
add(timeLabel);
//启动线程
new TimeThread().start();
}

public int getHour() {
return hour;
}

    class TimeThread extends Thread{
    
     //默认下午6点下班
    
     public TimeThread() {
}
    
@Override
public void run() {
//获取当天下班时间
//获取当前时间
Calendar instance = Calendar.getInstance();
instance.setTime(new Date());
instance.set(Calendar.HOUR_OF_DAY, hour);
instance.set(Calendar.MINUTE, 0);
instance.set(Calendar.SECOND, 0);
long timeInMillis = instance.getTimeInMillis();
for(;;){
long currentTimeMillis = System.currentTimeMillis();
long time = timeInMillis-currentTimeMillis;

//小时
//分
double t = time/(1000*60*60D);
int minite = (int) ((t-Math.floor(t))*60);
int second = (int) ((time/1000)%60D);
//System.out.println("离下班还有:"+Math.floor(t)+"小时"+minite+"分"+second+"秒");
timeLabel.setText("离下班还有:"+Math.floor(t)+"小时"+minite+"分"+second+"秒");
if(t<0){
break;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
    
    }

/**
 * @param args
 */
public static void main(String[] args) throws Exception{
JFrame frame = new JFrame();
WorkTime wt = new WorkTime(23);
frame.setTitle("今天"+wt.getHour()+"点下班,等待下班中……");
frame.add(wt);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 80);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
302652034_bai
2014-06-13 · TA获得超过4145个赞
知道大有可为答主
回答量:2206
采纳率:66%
帮助的人:1556万
展开全部
System.currentTimeMillis()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式