小菜鸟的程序看不懂,请大虾过来看看!!一定给分~~~!!!!

yopeng 2007-04-06 08:31:26
初学java,看了本Java 2范例入门与提高,此书上18页有个水波效果的例子,费了好大的劲,把上面的代码敲了下来: 编译时出了三个警告,但也能运行.
想弄明白是怎么回事,哪位大虾赐教!!
另\:书上对这个例子没有过多的解释,很多函数我也不知道什么作用,哪位大虾能不辞劳苦给注释一下,谢谢!!

import java.applet.Applet;//引入Applet类
import java.awt.*;//引入图形类
public class splash extends Applet implements Runnable{
int XMAX = 112;
//现在的高度
float[] m_Height = new float[XMAX];
//移动之前的值
float[] m_G = new float[XMAX];
//下载因素
float b=1.01f;
// 水波传播速度
float fWeight =3;
private Thread m_NAMI2D=null;

//处理鼠标事件
public boolean mouseDown(Event event,int i,int j)
{
m_Height[i/4-1]+=j/2;
m_Height[i/4]+=j;
m_Height[i/4+1]+=j/2;
return false;
}
//显示applet的方法
public void paint(Graphics g)
{
g.setColor(Color.blue);
float f1=3F * fWeight;
float f2=f1-2.0F;
m_Height[0] = m_Height[1];
m_Height[XMAX-1] = m_Height[XMAX-2];
float f = m_Height[0];
for(int i=1;i<XMAX-1;i++)
{
float f3 = ((f+f2*m_Height[i]+m_Height[i+1])/f1+m_G[i])/b;
f=m_Height[i];
m_G[i] = f3 - f;
m_Height[i] = f3;
g.clearRect((i-1)*4,(int)f3 -30,4,60);
g.fillRect((i-1)*4,(int)f3+30,4,60);
}
}
//此方法实现了runnable,它是线程主体。
public void run()
{
do
try
{
repaint();
Thread.sleep(50L);
}
catch(InterruptedException ex)
{
stop();
}
while(true);
}


//浏览器调用此方法告诉applet开始运行创建一个线程
public void start()
{
if (m_NAMI2D==null)
{
m_NAMI2D= new Thread(this);
m_NAMI2D.start();
}
}
//停止线程
public void stop()
{
if(m_NAMI2D!=null)
{
m_NAMI2D.stop();
m_NAMI2D=null;
}
}
//更新applet
public void update(Graphics g)
{
paint(g);
}
}

编译时却出现警告3个:
D:\yopeng\javaexam>javac -Xlint splash.java
splash.java:16: warning: [deprecation] mouseDown(java.awt.Event,int,int) in java
.awt.Component has been deprecated
public boolean mouseDown(Event event,int i,int j)
^
splash.java:73: warning: [deprecation] stop() in java.lang.Thread has been depre
cated
m_NAMI2D.stop();
^
splash.java:3: warning: [serial] serializable class splash has no definition of
serialVersionUID
public class splash extends Applet implements Runnable{
^
3 warnings




...全文
437 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaodaozy 2007-04-07
  • 打赏
  • 举报
回复
呵呵,别把马鞍套在汽车上
malligator 2007-04-07
  • 打赏
  • 举报
回复
up
Norris_Zhang 2007-04-07
  • 打赏
  • 举报
回复
有警告没关系,jdk不断升级过程中要保证向上兼容,也就是用老版编译的代码在新版本环境中也要求能运行,这就导致有些类或方法现在被更新了,有更好的方法了,不建议使用老的方法,但老的方法还是保留的,所以会有警告,但不会影响运行.

至于那个什么serialVersionUID也是新版本的特性,提供对象序列化ID是sun公司建议的一个好的编程习惯,但不提供也不影响运行
ljdam 2007-04-07
  • 打赏
  • 举报
回复
可以在api上查一下mouseDown,那上面应该有替代的方法
hznibaoshan 2007-04-07
  • 打赏
  • 举报
回复
第一警告,可能是你鼠标的事件不正确,下面也看不懂了,我们还没有学到呢
yopeng 2007-04-07
  • 打赏
  • 举报
回复
没有人把上面的给小弟注释一下下么

呵呵
中午下班时结帐~~
For_suzhen 2007-04-06
  • 打赏
  • 举报
回复
mouseDown
@Deprecated
public boolean mouseDown(Event evt,
int x,
int y)已过时。 从 JDK version 1.1 开始,由 processMouseEvent(MouseEvent) 取代。



stop
@Deprecated
public final void stop(Throwable obj)已过时。 该方法具有固有的不安全性。请参阅 stop() 以获得详细信息。该方法的附加危险是它可用于生成目标线程未准备处理的异常(包括若没有该方法该线程不太可能抛出的已检查的异常)。有关更多信息,请参阅为何不推荐使用 Thread.stop、Thread.suspend 和 Thread.resume?。
==========================================================================
所以说,你最好将这写函数写成他们现在的接班函数.source有警告也不好啊
For_suzhen 2007-04-06
  • 打赏
  • 举报
回复
public boolean mouseDown(Event event,int i,int j)
======================================================
这个方法已经过时了,不知道从什么版本就开始改为新的方法了,就是被弃用了
m_NAMI2D.stop();
同上
serializable class splash has no definition of
serialVersionUID

这个就是source编码规范级的了
好像是序列id什么的
好像是
final static id = ...你可以用eclipse,你点一下,就回帮你生成.
Red_angelX 2007-04-06
  • 打赏
  • 举报
回复
不懂 帮顶
qzjackie 2007-04-06
  • 打赏
  • 举报
回复
??
什么啊??
yopeng 2007-04-06
  • 打赏
  • 举报
回复
呵呵 谢谢1楼 不是想弄的明白点么
Rick_ang 2007-04-06
  • 打赏
  • 举报
回复
有WARNING没所谓啊,只不过你是使用了不建议的方法。比如
mouseDown(java.awt.Event,int,int) in java.awt.Component
Xlight FTP 2.8官方中文岚雨绿化曲线破解版 岚雨主页:http://hi.baidu.com/y21song 本版特点:基于官方2.8中文版(完美中文),没有改动任何文件,理论上运行稳定性要好,官方中文的帮助文件,好好学习哦。在网上看到菜鸟说这说那的,所以把安装版的四个快捷功能做成了批处理,放在了“管理 Xlight FTP 系统服务”文件夹里面了,郁闷:网上菜鸟太多(本来都可以在软件里面实现)。瑕疵的地方就是在主界面上依然显示“没有注册”。本人测试了Xlight FTP 2.8和2.4版的中文版,都可以破解成功,由此,可以得出结论,以后的新版本也可能可以使用此破解办法破解哦。大家感谢我吧,我可是用了好几天的时间才搞定的哦。gei钱给qian! 最近要给朋友传一些文件,所以要建个FTP,试用了近20个国内国外的FTP服务器软件,由于本人对软件有“洁癖”,总是不满意,鬼火死。又觉得如果用Serv-U有点儿小题大做了,最后锁定了Xlight FTP,有点点瑕疵都不太受得了,网络上虽然有众多的此软件破解,可是大多都是基于英文的破解加语言文件,语言文件的翻译不是十ok(太挑剔o(∩_∩)o...),唯一的最新基于中文版的破解是2.4,可是版本太老(严重挑剔--鸡蛋里面找骨头啦),在尝试了众多的方法之后,终于有了自己的破解版,噢噢!错了错了,应该是曲线破解版——严格说,不是对软件的直接破解——不过,我保证是全功能永久免费使用。哇哇——我真是人才啊,自恋一下!21世纪什么最贵————想说是人才吧——错,是猪肉!^_^继续说破解吧,本人不懂编程,所以破解如果有问题大家不要骂我。(自信满满:不会有问题的)在xp、2k3下测试无问题,其它系统没有条件测试。 此破解方法的理论依据之一: Xlight FTP 服务器有三个版本:个人版本,标准版本,专业版本。 个人版本只对个人使用是免费的,如果是非个人使用,需要注册标准版或专业版。试用期的程序在30天试用期内,将会以专业版本的功能运行。 30天试用期后, 如果没有注册,FTP服务器自动变成个人版本。试用期内是全功能啊,所以,成功!永远的试用专业版! 破解的具体步骤:把文件解压到硬盘,运行“xlight2.24.exe”,这是Xlight FTP2.24英文版,此版本已经破解,点击软件右上角的图标(像个小房子的那个),输入任意的用户名和注册码注册(用字母,别加空格,免得出错,谢谢合作),在这里注册之后就可以退出此程序了,然后使用xlight.exe使用了,试用的时间就会永远的停留在30天,成功! 注意事项:不使用破解,也可以免费的全功能试用30天,30试用期结束之后,会自动变为个人版,一些高级功能无法使用。 另:本人有一种更简便快捷的破解方式,不过为了给菜鸟们多多学习,多多操作的一个机会,所以就只公布此一种破解办法了,而高手们也不会看得上我的另外一种破解办法,所以留起来自己用啦,(可能是自私了一些,表骂我)。这也是学习嘛。 其实对于个人用户来说,个人版本已经够用了,无需破解! 本软件发布仅仅是为了学习,在下载12小时内测试之后删除,支持正版!也作者降降价!感谢大家!感谢作者提供如此好软! 个人给一个此软件与Serv-U的个人经验对比(本人菜鸟,如有错误,高手不吝赐教): Serv-U:功能强大,适合老鸟大虾和企业试用,好像没有官方中文,只有汉化版,破解版很多,容易下载 Xlight FTP:功能不比Serv-U弱,入手方便,几乎适合所有人群使用(不包括超级菜鸟),官方提供中文版,有中文帮助文件,容易学习,破解版也多,不过基于官方中文的破解较少!(不过本破解就是啦,还是系列破解,应该2.X的各版本适用,如果以后有了新版,应该也是可以破解的) 再次提示:尊重软件原作者的劳动

62,628

社区成员

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

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