关于线程的问题???

aa321207 2007-12-21 06:54:18

import java.awt.*;
import java.applet.*;
import java.util.Date;
public class E8 extends Applet implements Runnable
{
Thread clockThread;
Font Font;
public void init()
{
Font=new Font("TimesRoman",Font.BLOD,48);
}
public void start()
{
if(clockThread==null)
{
clockThread=new Thread(this,"Showtime");
clockThread.start();
}
}
public void run()
{
while(clockThread!=null)
{
Repaint();
try
{
clockThread.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
public void paint(Graphics g)
{
Date now=new Date();
g.setFont(Font);
g.setColor(Color.red);
g.drawString(now.getHours()+":"+now.getMinutes()+":"+now.getSeconds(),5,50);
}
public void stop()
{
clockThread.stop();
}
}

我不知道那里出问题了
谁来帮我改改
...全文
104 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixkyx 2007-12-23
  • 打赏
  • 举报
回复
呵呵!在我的jdk1.4上,警告说某些方法过时,就是stop方法和Date类的方法过时,但是仍然可以运行。看来,在jdk1.5上,会根本无法运行的。记住了。^_^
aa321207 2007-12-23
  • 打赏
  • 举报
回复
我知道答案了
我们原来都是方法过时了 而运行不起

import java.awt.*;
import java.applet.*;
import java.util.Calendar;
import java.util.Date;
public class E8 extends Applet implements Runnable
{
Thread clockThread;
Font Font;
public void init()
{
Font=new Font("TimesRoman",Font.BOLD,48);
}
public void start()
{
if(clockThread==null)
{
clockThread=new Thread(this,"Showtime");
clockThread.start();
}
}
public void run()
{
while(clockThread!=null)
{
repaint();
try
{
clockThread.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
public void paint(Graphics g)
{
//Date now=new Date();
g.setFont(Font);
g.setColor(Color.red);
g.drawString(Calendar.getInstance().get(Calendar.HOUR)+":"+Calendar.getInstance().get(Calendar.MINUTE)+":"+Calendar.getInstance().get(Calendar.SECOND),5,50);
}
public void stop()
{
//clockThread.stop();
}
}
这是正确的
davidzhang0821 2007-12-22
  • 打赏
  • 举报
回复
错误信息?
zxphwz 2007-12-22
  • 打赏
  • 举报
回复
public class E8 extends Applet implements Runnable
{
Thread clockThread;
Font font;

public void init()
{
font=new Font("TimesRoman",Font.BOLD,48);
}

public void start()
{
if(clockThread==null)
{
clockThread=new Thread(this,"Showtime");
clockThread.start();
}
}

public void run()
{
while(clockThread!=null)
{
repaint();
try
{
clockThread.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
public void paint(Graphics g)
{
Date now=new Date();
g.setFont(font);
g.setColor(Color.red);
g.drawString(now.getHours()+":"+now.getMinutes()+":"+now.getSeconds(),5,50);
}
public void stop()
{
clockThread.stop();
}
}
lixkyx 2007-12-22
  • 打赏
  • 举报
回复
名字还是不对啊!
对象名不能叫做Font,会和Font类冲突的。
zhangjin137133 2007-12-22
  • 打赏
  • 举报
回复
语句 Font=new Font("TimesRoman",Font.BLOD,48); 改为 Font=new Font("TimesRoman",Font.BOLD,48);
while(clockThread!=null)
{
Repaint();
改为
while(clockThread!=null)
{
repaint();
lixkyx 2007-12-22
  • 打赏
  • 举报
回复
那就没办法了。楼主不妨运行一些别的跟线程有关的程序,如果全都不能正常运行,那说明是你的Java环境出了问题,建议重装jdk。

另外,“不能运行”是啥现象?是编译通不过,还是编译之后,把它嵌入html文件,使用appletView察看该html文件看不到正确的运行结果?

提示一下,如果你是用浏览器打开该html网页,可能会无法显示,这是你的电脑的安全配置上的问题,和Java程序无关。
aa321207 2007-12-22
  • 打赏
  • 举报
回复
5楼
你的代码我试了下还不是行
我装的是JDK1.5的
lixkyx 2007-12-22
  • 打赏
  • 举报
回复
在我的电脑上,jdk1.4,winxp,程序运行完全正常的,楼主是不是要考虑重装jdk了?

import java.awt.*;
import java.applet.*;
import java.util.Date;
public class E8 extends Applet implements Runnable
{
Thread clockThread;
Font font;
public void init()
{
font=new Font("TimesRoman",Font.BOLD,48);
}
public void start()
{
if(clockThread==null)
{
clockThread=new Thread(this);
clockThread.start();
}
}
public void run()
{
while(clockThread.isAlive())
{
repaint();
try
{
clockThread.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
public void paint(Graphics g)
{
Date now=new Date();
g.setFont(font);
g.setColor(Color.red);
g.drawString(now.getHours()+":"+now.getMinutes()+":"+now.getSeconds(),5,50);
}
//public void stop()
//{
//clockThread.stop();
//}
}
aa321207 2007-12-22
  • 打赏
  • 举报
回复
还是不行!
aa321207 2007-12-22
  • 打赏
  • 举报
回复
我在UESTUDIO上写的代码
我写的是 Font font;
但是那上面显示是Font Font
是怎么回事啊
lixkyx 2007-12-21
  • 打赏
  • 举报
回复
楼主的程序编译时可能会提示某些API过时,但是不影响运行。

主要是Date的几个getXXX方法和Thread的stop方法的问题。
lixkyx 2007-12-21
  • 打赏
  • 举报
回复
楼主犯了几个错误:
第一,“Font Font; ”
对象名字应当使用和类名不同的标识符。

第二,
“Font=new Font("TimesRoman",Font.BLOD,48);”
除了对象名字要改之外,Font.BLOD应为“Font.BOLD”

改过之后,程序应该可以运行了。

62,614

社区成员

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

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