求java的一些简单实例的报告,如闹钟这种,要的就是实验报告的形式。1193956141@qq.com

求java的一些简单实例的报告,如闹钟这种,要的就是实验报告的形式。1193956141@qq.com,第1张

import javautil;

import javaawt;

import javaapplet;

import javatext;

import javaawtevent;

public class Alarm extends Applet implements Runnable

{

Thread timer=null; //创建线程timer

Image gif1; //clockp:闹钟的外壳,闹铃和报时物

boolean setflag=false,stopflag=false,cancelflag=false;

Panel setpanel;

//获取声音文件

AudioClip ring=getAudioClip(getCodeBase(), "1mid");

Button setbutton=new Button("SET");

Button cancelbutton=new Button("CANCEL");

Button stopbutton=new Button("STOP");

//响应按钮事件

private ActionListener setli=new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

setflag=true;

}

};

private ActionListener cancelli=new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

setflag=true;

}

};

private ActionListener stopli=new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

ringstop();

//清除的方法

//gclearRect(83,280,20,30);

}

};

Label note1=new Label("Alarm clock:");

//GregorianCalendar提供的是一个日历式的东东,上面又多了很多的参数,是方便操作了不少。而Date类的功能远不及其,求个和日期有联系的还要自己计算。

GregorianCalendar cal=new GregorianCalendar();

GregorianCalendar cal2=new GregorianCalendar();

SimpleDateFormat df=new SimpleDateFormat("yyyy MM dd HH:mm:ss");//设置时间格式

Date dummy=new Date(); //生成Data对象

String lastdate=dfformat(dummy);

Font F=new Font("TimesRoman",FontPLAIN,14);//设置字体格式

Date dat=null;

Date timeNow;

Color fgcol=Colorblue;

Color fgcol2=ColordarkGray;

Color backcolor=Colorblue;

Label hlabel2,mlabel2,slabel2;//显示时间单位时所用的标签(时、分、秒)

int i;

int s,m,h;

TextField sethour,setmin,setsec;//显示当前时间文本框和定时文本框

//在Applet程序中,首先自动调用初始化完成必要的初始化工作,紧接着自动调用start,在进入执行程序和返回到该页面时被调用,而从该页面转到别的页面时,stop被调用,关闭浏览器时,执行destroy。

public void init()//初始化方法

{

int fieldx=50,fieldy1=120,fieldy2=220,fieldw=30,fieldh=20,space=50;//显示时间和定时文本框的定位参数

setLayout(null); //将布局管理器初始化为null

setpanel=new Panel();

setpanelsetLayout(null);

setpaneladd(note1);

note1setBounds(30,100,60,20);

note1setBackground(backcolor);

note1setForeground(Colorblack);

//定时用的文本框(时、分、秒)

sethour=new TextField("00",5);

setmin=new TextField("00",5);

setsec=new TextField("00",5);

hlabel2=new Label();

mlabel2=new Label();

slabel2=new Label();

//定时的小时文本框的位置、大小

setpaneladd(sethour);

sethoursetBounds(fieldx,fieldy2,fieldw,fieldh);

sethoursetBackground(Colorwhite);

//在文本框后加入单位“时”

setpaneladd(hlabel2);

hlabel2setText("h");

hlabel2setBackground(backcolor);

hlabel2setForeground(Colorblack);

hlabel2setBounds(fieldx+fieldw+3,fieldy2,14,20);

fieldx=fieldx+space;

//定时的分钟文本框的位置、大小

setpaneladd(setmin);

setminsetBounds(fieldx,fieldy2,fieldw,fieldh);

setminsetBackground(Colorwhite);

//在文本框后加入单位“分”

setpaneladd(mlabel2);

mlabel2setText("m");

mlabel2setBackground(backcolor);

mlabel2setForeground(Colorblack);

mlabel2setBounds(fieldx+fieldw+3,fieldy2,14,20);

fieldx=fieldx+space;

//定时的秒文本框的位置、大小

setpaneladd(setsec);

setsecsetBounds(fieldx,fieldy2,fieldw,fieldh);

setsecsetBackground(Colorwhite);

//在文本框后加入单位“秒”

setpaneladd(slabel2);

slabel2setText("s");

slabel2setBackground(backcolor);

slabel2setForeground(Colorblack);

slabel2setBounds(fieldx+fieldw+3,fieldy2,14,20);

//设置闹钟控制按钮(on,off)

setpaneladd(cancelbutton);

setpaneladd(setbutton);

setpaneladd(stopbutton);

cancelbuttonsetBounds(90,180,40,20);

setbuttonsetBounds(140,180,40,20);

stopbuttonsetBounds(522,180,40,20);

setbuttonaddActionListener(setli);

cancelbuttonaddActionListener(cancelli);

stopbuttonaddActionListener(stopli);

stopbuttonsetVisible(false);

//将面板加入当前容器中,并设置面板的大小和背景色

add(setpanel);

setpanelsetBounds(300,1,250,420);

setpanelsetBackground(backcolor);

/int xcenter,ycenter,s,m,h;

//闹钟中心点所在位置

xcenter=145;

ycenter=162;

s=(int)calget(CalendarSECOND);

m=(int)calget(CalendarMINUTE);

h=(int)calget(CalendarHOUR_OF_DAY);

//初始化指针位置

lastxs=(int)(Mathcos(s314f/30-314f/2)30+xcenter);

lastys=(int)(Mathsin(s314f/30-314f/2)30+ycenter);

lastxm=(int)(Mathcos(m314f/30-314f/2)25+xcenter);

lastym=(int)(Mathsin(m314f/30-314f/2)25+ycenter);

lastxh=(int)(Mathcos((h30+m/2)314f/180-314f/2)18+xcenter);

lastyh=(int)(Mathsin((h30+m/2)314f/180-314f/2)18+ycenter);

lasts=s; /

MediaTracker mt=new MediaTracker(this);//为给定组件创建一个跟踪媒体的MediaTracker对象,把添加到被跟踪的组

//Java允SappletHTML所在的位置(decument base)下dY料,也允Sapplet钠涑淌酱a所在的位置(code base)下dY料。藉由呼叫getDocumentBase()cgotCodeBase()可得到URL物件。@些函湍阏业侥阆胂螺d的n案的位置

//clockp=getImage(getDocumentBase(),"11png");

gif1=getImage(getCodeBase(),"2gif");

//i为id号

mtaddImage(gif1,i++);

try

{

mtwaitForAll();

}

catch(InterruptedException e)

{};//等待加载结束

resize(600,420);//设置窗口大小

}

//窗口显示有改变的时候调用paint

public void paint(Graphics g)

{//重写paint()方法

int xh,yh,xm,ym,xs,ys,strike_times;

int xcenter,ycenter;

String today;

xcenter=148;

ycenter=186;

dat=new Date();

//用当前时间初始化日历时间

calsetTime(dat);

//读取当前时间

s=(int)calget(CalendarSECOND);

m=(int)calget(CalendarMINUTE);

h=(int)calget(CalendarHOUR_OF_DAY);

//换一种时间表达形式

today=dfformat(dat);

//指针位置

xs=(int)(Mathcos(s314f/30-314f/2)30+xcenter);

ys=(int)(Mathsin(s314f/30-314f/2)30+ycenter);

xm=(int)(Mathcos(m314f/30-314f/2)25+xcenter);

ym=(int)(Mathsin(m314f/30-314f/2)25+ycenter);

xh=(int)(Mathcos((h30+m/2)314f/180-314f/2)12+xcenter);

yh=(int)(Mathsin((h30+m/2)314f/180-314f/2)12+ycenter);

//设置字体和颜色

gsetFont(F);

//前景色

gsetColor(getBackground()); //取背景色的

gdrawImage(gif1,75,110,this);

//以数字方式显示年、月、日和时间

gdrawString(today,55,415);

//画指针

gdrawLine(xcenter,ycenter,xs,ys);

gdrawLine(xcenter,ycenter-1,xm,ym); //(x1,y1,x2,y2)

gdrawLine(xcenter-1,ycenter,xm,ym);

gdrawLine(xcenter,ycenter-1,xh,yh);

gdrawLine(xcenter-1,ycenter,xh,yh);

int timedelta;//记录当前时间与闹铃定时的时差

Integer currh,currm,currs;//分别记录当前的时、分、秒

Date dat2=new Date();

cal2setTime(dat2);

//读取当前时间

currh=(int)cal2get(CalendarSECOND);

currm=(int)cal2get(CalendarMINUTE);

currs=(int)cal2get(CalendarHOUR_OF_DAY);

//这样做的话说我API已过时

//timeNow=new Date();

//currh=new Integer(timeNowgetHours());

//currm=new Integer(timeNowgetMinutes());

//currs=new Integer(timeNowgetSeconds());

if(setflag)

{ //判断是否设置了闹钟

//判断当前时间是否为闹钟所定的时间

if((currhintValue()==IntegervalueOf(sethourgetText())intValue())&&(currmintValue()==IntegervalueOf(setmingetText())intValue())&&(currsintValue()==IntegervalueOf(setsecgetText())intValue()))

{

ringplay();

gdrawImage(gif1,83,280,this);

stopbuttonsetVisible(true);

}

timedelta=currmintValue()60+currsintValue()-IntegervalueOf(setmingetText())intValue()60-IntegervalueOf(setsecgetText())intValue();

if((timedelta>=30))

{

//若当前时间与闹钟相差时间超过30秒,闹钟自动停

ringstop();

//清除的方法

gclearRect(83,280,20,30);

}

}

dat=null;

}

public void start()

{

if(timer==null)

{

timer=new Thread(this);//将timer实例化

timerstart();

}

}

public void stop()

{

timer=null;

}

//给创建线程后start之后自动执行的函数

public void run()

{

//在run()方法中,调用repaint()方法,以重绘小程序区,进行时钟显示的更新。接着调用sleep方法让当前线程(也就是我们创建的线程clockthread)睡眠1000毫秒,因为我们每秒钟要更新一下显示,所以让它睡眠1秒

while(timer!=null)

{

try

{

timersleep(1000);

}

catch(InterruptedException e)

{}

//调用repaint时,会首先清除掉paint方法之前的画的内容,再调用paint方法

repaint();//刷新画面

}

timer=null;

}

//当AWT接收到一个applet的重绘请求时,它就调用applet的 update(),默认地,update() 清除applet的背景,然后调用 paint()。重载 update(),将以前在paint()中的绘图代码包含在update()中,从而避免每次重绘时将整个区域清除

//有两种方法可以明显地减弱闪烁:重载 update()或使用双缓冲。

//使用双缓冲技术:另一种减小帧之间闪烁的方法是使用双缓冲,它在许多动画Applet中被使用。其主要原理是创建一个后台图像,将需要绘制的一帧画入图像,然后调用DrawImage()将整个图像一次画到屏幕上去;好处是大部分绘制是离屏的,将离屏图像一次绘至屏幕上比直接在屏幕上绘制要有效得多,大大提高做图的性能。

// 双缓冲可以使动画平滑,但有一个缺点,要分配一张后台图像,如果图像相当大,这将需要很大一块内存;当你使用双缓冲技术时,应重载 update()。

public void update(Graphics g)

{

Image offscreen_buf=null;

//采用双缓冲技术的update()方法

if(offscreen_buf==null)

offscreen_buf=createImage(600,420);

Graphics offg=offscreen_bufgetGraphics();

offgclipRect(1,1,599,419);

paint(offg);

Graphics ong=getGraphics();

ongclipRect(1,1,599,419);

ongdrawImage(offscreen_buf,0,0,this);

}

/ Creates a new instance of AlarmClock /

}

激光近视手术的原理是利用准分子激光,在电脑控制下,修理黑眼球表面的角膜组织,使它光滑、规则、弯曲度刚好达到光线聚焦到眼底黄斑上的位置。如果做得不够光滑规则,则表现为散光,如果弯曲度不到位,出现术后近视矫正不足或过头的情况。手术疗效是否满意还受到:1设备与工程师调试的好坏。2医师技术的高低。3病人配合与生物反应这三个重要因素的影响。

激光近视手术目前有两种。一种叫做激光角膜切削术(PRK),激光从角膜表面修理。它只适合600D以下的近视,太高的近视做PRK,易造成角膜疤痕混浊。另一种手术叫做激光角膜层间镶嵌术(Lasik),是采用特制的刀具把角膜层间劈开,制成角膜瓣,在角膜基质内进行激光修理;高度近视和低度近视都适合,手术难度较大,易出现角膜瓣的并发症。我的两位女儿和都做了激光近视手术,效果都不错,但问她们的感受,姐姐说“不后悔”。妹妹却说:“怎么不后悔,我死也不再做了”,说明激光近视手术有利也有弊!

利:1、是当前最安全可靠矫治近视眼的方法,不论是国内外的报道,还是我们自己的实验,对600D或以下的近视眼患者来说,术后长期稳定的裸眼视力,92%≥05,70%≥10。对600D以上的高度近视眼来说,近视度数越高,手术后的长期效果越差。

2、与同样的美、德、日先进国家的设备和技术的收费相比,国内的手术收费标准十分低廉,只有上述国家的1/4-1/6。

3、国内医师临床经验丰富,初步估计,手术病例数已超过30万人。因技高价廉,已吸引不少国外人士来华手术。

4、快捷。激光照射只需几十秒钟,不需住院。

弊:1、手术疗效并非十全十美,总有少数手术患者出现了并发症,个别患者甚至出现感染、眼球穿孔等严重并发症,造成矫正视力下降甚至失明,由于激光手术是在健眼上进行,这种眼本来配上矫正眼镜后视力能完全恢复,如果因手术致使视力下降的话,则是得不偿失的。从这一点来看,手术患者都带有一定的冒险性。下决心手术时,医师与患者都要三思而行。

2、目前激光近视手术在我国开展似乎有些滥,少数单位用商业化操作,广告言过其实,不在技术水平上下功夫,增加了产生并发症的可能性。

3、准分子激光设备与技术仍在不断发展,少数单位不能跟上其发展,致使患者遭受不应有的损失。

------------------------------------------------------------------------------------------

笔者:很多患者提出LASIK手术术后是否会反弹的问题?

杜之渝:LAISK手术永久性的改变了角膜的曲率,手术不会反弹,对600以下的中、低度近视眼,效果更加可靠。但对于年龄偏小、眼球发育尚为稳定的高度近视,尤其是超高度近视,术后可能会有发展,这是近视的再发展,并不是反弹。打个比方,如果你激光手术后,依然不正确用眼,那么即使是一个完全正常视力的人,他的眼睛也会出现问题,所以术后的自我用眼保健很重要。

笔者:时下能做准分子激光近视手术的医院参差不齐,价格差异也比较大,什么原因呢?

杜之渝:目前全国将近600家医院可以进行该项手术,基本普及到各地区。由于各家医院的设备、医资力量、医院级别、地区卫生政策的限制等原因,造成了该项手术价格的较大悬殊,同时,各家医院的竞争也造成价格的波动较大。

笔者:我们华夏近视网作为全国400家准分子激光近视手术医院的联盟,在患者和医院间搭起了一座桥梁,为近视患者免费提供了各家医院详细的咨讯和手术预约,在中国的准分子行业中,可以说是扮演了较为重要的角色。

杜之渝:我上过你们网站,很专业,特别是医院资料,比较详尽。我们也希望你们能够正确引导全国的近视患者,为他们的光明康复,做点贡献。同时,也希望你们网站成为我们医生的朋友,在学术交流方面提供一个自由和集中的平台。祝愿你们越办越好!

准分子激光近视手术探密

激光近视手术源于1983年,美国纽约哥伦比亚大学医师首先将准分子激光用于近视手术,此后80年代末到90年代准分子激光近视手术得到了快速发展,1995年~2000年,美国FDA药监局相继批准了高度近视,散光,和远视的准分子激光治疗如今,准分子激光治疗近视手术已经开展15年,中国准分子激光治疗近视手术与国外基本同时起步,1992年以来卫生部就准分子激光治疗近视手术召开了论证会,1993年在北京两家医院的临床验证下,对手术稳定性能,有效性安全性已给予了充分的肯定随后掀起了近视矫正手术的高潮。时至今日,中国的可进行近视激光手术的医疗机构达到600家,相关从业人员将近15万人,接受准分子手术的患者达到300万人次。

为何在这么短的时间里,此项技术得以如此盛行?笔者带着对“手术”二字的疑问了解到其中的“真相”:

在了解准分子手术前,我们先了解一下近视的原理。近视,简单的说即是光线经过角膜的作用,成象点落到了视网膜之前,从而形成歪曲和模糊的影象。在这里,人的角膜就充当了光学镜的作用,对于近视患者而言,配戴光学眼镜实际上就是从外部改变了光线的投射方向,从而使得象点成象于视网膜。达到视觉清晰的效果。而准分子激光手术则是从内部着手,利用一种波长为193纳米(nm)的激光,将角膜的基质部分进行安全切削,从而形成天然的眼镜,以达到根治近视的目的。

和所有人一样,笔者对“手术”二字的概念尤为谨慎,何况是在身体上异常脆弱的眼睛里动刀。但随着笔者对该手术的一次现场观摩,彻底打消了这个念头。

目前准分子激光手术有以下几种:1,准分子激光屈光性角膜切削术(PRK) 2,准分子激光原位角膜磨镶术(LASIK) 3,准分子激光角膜上皮磨镶术(LASEK)。其中LASIK手术最为普遍,也是目前中国市场的主流手术。笔者观摩的就是一次LASIK手术,患者经过医院严格的眼部检查后,进入手术室,用“开睑器”撑开眼皮、眼环固定、局部麻醉、电脑控制发射激光(每只眼睛发射激光的时间大概是几十秒钟),然后是冲洗眼睛,带上小孔眼罩。手术完成,前后时间十分钟。

在笔者对手术完成者的采访中,所有手术者都是一个概念,那就是异常紧张和恐惧的心态进入手术室,惊奇和放松的心态离开手术室。告诉我的都是一句话:没想到这么快!

随后从手术医生那里了解了更多想关的知识。LASIK手术注重手术检查,手术本身倒是相对操作简单。只要检查通过,手术一般没有问题,所以请患者朋友一定注意检查的过程和结果。另外,LASIK手术本身有很多禁忌症:

1,  眼部患感染性炎症,圆锥角膜,青光眼,白内障。

2,  糖尿病、胶原性疾病、自身免疫性疾病(如艾滋病)

3,  瘢痕体质

同时,该项手术也有着其适应的人群范围:

1,  一般年龄在18-50周岁

2,  近视度数稳定

3,  100度—3000度之间

大多数的患者做完LASIK手术后24小时内就可以视物, 2-3天内就可以开车。LASIK手术后的第一天,您便可以恢复正常生活。由于个人生活条件不同,建议在一个月内,不要在眼部使用化妆品,不要参加游泳等剧烈运动或在多尘环境下工作。

笔者感叹终于了解所谓“眼睛手术”的概念,几近恐怖的事情原本是这么的简单。随着近视手术的普及,越来越多的人为了各种不同的需求,走进医院。同时我们也欣喜的看到该项技术也日趋成熟,真心的希望天下所有被眼镜所累的人能安全摘掉眼镜,脱离模糊世界,还自己明眸清亮!

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 求java的一些简单实例的报告,如闹钟这种,要的就是实验报告的形式。1193956141@qq.com

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情