十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
private Shape rect; //背景矩形
专注于为中小企业提供成都网站制作、成都做网站、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业碾子山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
private Font font; //设置字体
private Date date; //现在的时间
private Thread time; //时间线程
private CanvasPanel canvas;
public static void main(String[] args) {
new TimerTest20140930();
}
public TimerTest20140930(){
super("绘制文本");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,300);
rect = new Rectangle2D.Double(10,10,200,100);
font = new Font("宋体",Font.BOLD,16);
canvas=new CanvasPanel();
add(canvas);
time = new Thread(new Runnable(){
public void run(){
while(true){
canvas.repaint();
try{
Thread.sleep(1000);
}catch(Exception ex){
}
}
}
});
time.start();
setLocationRelativeTo(null);
setVisible(true);
}
class CanvasPanel extends Canvas {
public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.BLACK);
g2.fill(rect);
g2.setColor(Color.BLUE);
g2.setFont(font);
g2.drawString("现在的时间是", 20, 30);
date = new Date();
g2.drawString(String.format("%tr", date), 50, 60);
}
}
我之前倒是写过这么一个,是放在某个类里作为私有类实现的,当然你可以改为一个public的,下面是我的代码,供参考
//私有类,实现时间的实时显示
private class DisplayTime extends Thread //利用线程实现实时显示
{
SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss"); //24小时制,精确到秒
public void run()
{
while(true)
{
time.setText(sdf.format(new Date()));
try
{
Thread.sleep(1000); //线程休眠一秒
}
catch(InterruptedException e)
{}
}
}
}
下面这个只能实现每按下一次按钮显示一次时间,动态的要用到Timer,本人新手那个做不来
import java.applet.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends Applet implements ActionListener{
private Label l;
public String times;
private Button b1;
public Date d;
public void init(){
l=new Label("");
b1=new Button("showtime");
d=new Date();
SimpleDateFormat from = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
times = from.format(d);
add(b1);
add(l);
b1.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1)
{
l.setText(times);
}
}
}