java 怎么在一个JLabel上显示动态时间 用线程

 我来答
qdmmy6
推荐于2016-09-17 · TA获得超过2674个赞
知道小有建树答主
回答量:1823
采纳率:0%
帮助的人:1061万
展开全部
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

public class FrameTest {
public static void main(String[] args) {
JFrame f = new MyFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}

class MyFrame extends JFrame {
private JLabel label = new JLabel();
private Thread th;

public MyFrame() {
this.init();
this.add(label);
th = new Thread() {
public void run() {
while(true) {
Date d = new Date();
String s = String.format("%tT", d);
label.setText(s);
try {
Thread.sleep(1000);
} catch(Exception e) {
}
}
}
};
th.start();
}

private void init() {
this.setSize(300, 200);
this.setLocation(300, 200);
this.setLayout(new FlowLayout());
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Eking2000
2010-03-26 · TA获得超过1228个赞
知道小有建树答主
回答量:1471
采纳率:0%
帮助的人:730万
展开全部
方法与很多中,你也可以重新定义JLabel。下面是一种方法。

public class test extends JApplet

{

public void init()
{
newlabel nl=new newlabel();
Thread th=new Thread (nl);
th.start();
this.add(nl);
}
class newlabel extends JLabel implements Runnable
{

public newlabel()
{
super();
}
@Override
public void run() {
String date="yyyy-MM-dd-HH-mm-ss";
while( true) {
SimpleDateFormat bartDateFormat = new SimpleDateFormat(date);
String ddate = bartDateFormat.format(Calendar.getInstance().getTime());
this.setText(ddate);
try{
Thread.sleep(1000);
}catch(InterruptedException e){System.out.println(e);};
}
}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b63c2cf
2010-03-26 · 超过27用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:59.2万
展开全部
import java.text.SimpleDateFormat;
import java.util.Date;

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

public class Datetime extends JFrame implements Runnable {

public JLabel la = new JLabel();

SimpleDateFormat form = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String ss = form.format(new Date());

public Datetime(){
la.setSize(100,200);
this.add(la);
this.setSize(300,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void run() {

while (true) {

try {
la.setText(ss);
ss = form.format(new Date());
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}

}
public static void main(String[] args) {
new Thread(new Datetime()).start();
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式