做了个时钟,请各位帮忙改成动态的

mastersai2004 2004-08-11 09:03:07
加个多线程因该就可以了,大家看看
import java.awt.*;
import javax.swing.*;
import java.util.*;

class Foo
{
public static void main(String[] args)
{
FrameTest f = new FrameTest();
f.show();

}
}
class FrameTest extends JFrame
{

public FrameTest()
{
setSize(200,200);
PanelTest p = new PanelTest();
Container c = getContentPane();
c.add(p);
}
}
class PanelTest extends JPanel
{
String str,hour,minute,second;
public void paint(Graphics g)
{
Calendar calendar = Calendar.getInstance();
Date rightNow = calendar.getTime();
hour = "" + calendar.get(Calendar.HOUR_OF_DAY);
minute = "" + calendar.get(Calendar.MINUTE);
second = "" + calendar.get(Calendar.SECOND);
str = hour + ":" + minute + ":" + second;
g.fill3DRect(0 , 0 ,70 ,20, true);
g.setColor(Color.white);
g.drawString(str, 10 , 10);
}

}
...全文
103 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlecpu 2004-08-12
  • 打赏
  • 举报
回复
找了一个女人,请大家帮忙脱下她的衣服。
gyf168 2004-08-12
  • 打赏
  • 举报
回复

这是我的现实时间的程序,可以运行,在jcreator上编译运行,就是用到线程
/**
* My_Time.java 19 July 2004
* @version:1.0
* @author:Yun_feng Gao
* Last modified 20/July/2004
*/

import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.awt.*;
/**
* A small java programe that display the nowTime and date
*/
public class My_Time
{
public static void main(String args[])
{
JFrame mainFrame=new TestFrame();
mainFrame.show();
}
}
class TestFrame extends JFrame
{
private TimePanel timePanel;
private TimeAction timeAction;
public TestFrame()
{
setSize(400,600);
setTitle("TEST");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosed(WindowEvent e){
System.exit(0);
}
});
timePanel=new TimePanel();
timeAction=new TimeAction(timePanel);
timePanel.setActionLitener(timeAction);

Container contentPane=getContentPane();
contentPane.add(timePanel,BorderLayout.CENTER);
//contentPane.add(new MemoryMonitor(),BorderLayout.SOUTH);
}
}
class TimePanel extends JPanel
{
private JButton button;
private JLabel label;
private JButton autoChangeTime;
private JTextField text;
private JPanel panel;

public TimePanel()
{
button=new JButton("Change time");
autoChangeTime=new JButton("AutoChangeTime");
label=new JLabel(Calendar.getInstance().getTime().toString());
text=new JTextField(Calendar.getInstance().getTime().toString());

panel=new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.CENTER));
panel.add(button);
panel.add(autoChangeTime);

setLayout(new BorderLayout());
add(panel,BorderLayout.NORTH);
add(text,BorderLayout.CENTER);
add(label,BorderLayout.SOUTH);
}
/**
* method setTime
* @param s used to set the text of label
*/
public void setTime(String s)
{
label.setText(s);
label.revalidate();
}
public void setText(String s)
{
text.setText(s);
}
public void setActionLitener(TimeAction timeAction)
{
button.addActionListener(timeAction);
autoChangeTime.addActionListener(timeAction);
}
public String getActionSource(Object actionSource)
{
String name=null;
if(actionSource.equals(button))
name="button";
if(actionSource.equals(autoChangeTime))
name="autoChangeTime";
return name;
}
}
class TimeAction implements ActionListener
{
private Calendar time;
private TimePanel timePanel;
private String buttonName;

public TimeAction(TimePanel timePanel)
{
super();
this.timePanel=timePanel;
}
public void actionPerformed(ActionEvent evt)
{
String s=Calendar.getInstance ().getTime ().toString ();
buttonName=timePanel.getActionSource(evt.getSource());

if(buttonName.equals("button"))
{
timePanel.setText("Now time is:"+s);
timePanel.setTime(s);

if(Thread.currentThread()!=null)
{
timePanel.setText(s);
timePanel.setTime(s);
}
}
if(buttonName.equals("autoChangeTime"))
{
TestThread thread=new TestThread(timePanel);
thread.setPriority(1);
thread.start();
}
}
}
class TestThread extends Thread
{
private TimePanel test;

public TestThread(TimePanel test)
{
this.test=test;
}

public void run()
{
try
{
while(true)
{
test.setText(Calendar.getInstance().getTime().toString());
test.setTime(Calendar.getInstance().getTime().toString());
Thread.currentThread().sleep(100);
}
}
catch(InterruptedException ex)
{
ex.printStackTrace();
}
}
}

langxiaofeng 2004-08-11
  • 打赏
  • 举报
回复
UP楼上做的不错不过好样少点什么东西
ntzls 2004-08-11
  • 打赏
  • 举报
回复
import java.awt.*;
import javax.swing.*;
import java.util.*;

public class Foo
{
public static void main(String[] args)
{
JFrame f = new JFrame();
f.getContentPane().add(new PanelTest());
f.setSize(200,200);
f.setVisible(true);
}
}

class PanelTest extends Panel implements Runnable{
private Thread thd;
public PanelTest(){
thd=new Thread(this);
thd.start();
}
public void run(){
while(thd!=null){
repaint();
try{
thd.sleep(1000);
}catch(InterruptedException e){}
}
}
public void paint(Graphics g){
Date now=new Date();
g.drawString(now.getHours()+":"+now.getMinutes()+":"+now.getSeconds(),20,20);
}
}
mastersai2004 2004-08-11
  • 打赏
  • 举报
回复
楼上怎么刷新阿?帮忙改一下吧
pigrain 2004-08-11
  • 打赏
  • 举报
回复
加个刷新就好,可以产生动态效果
张海霖 2004-08-11
  • 打赏
  • 举报
回复
关注一下

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧