|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的
画出每帧:
剩下的就是将每帧图像绘出。在上例中挪用了applet的repaint()来绘出每帧图像。
publicvoidpaint(Graphicsg){
g.setColor(Color.black);
g.drawString("Frame"+frame,0,30);
}
天生图形:
如今我们来画一些略微坚苦的工具。下例画了一个正弦曲线的组合,关于每个x,画一条短的垂直线,一切这些线构成了一个图形,而且每帧变更。
但不幸有些明灭,在今后我们将注释为何闪和如何制止。
publicvoidpaint(Graphicsg){
Dimensiond=size();
inth=d.height/2;
for(intx=0;x<d.width;x++){
inty1=(int)((1.0+Math.sin((x-frame)*0.05))*h);
inty2=(int)((1.0+math.sin((x+frame)*0.05))*h);
g.DrawLine(x,y1,x,y2);
}
}
制止闪灼:
上例中的闪灼有两个缘故原由:绘制每帧消费的工夫太长(由于重绘时请求的盘算量年夜),二是在每次挪用pait()前全部背景被扫除,当在举行下一帧的盘算时,用户看到的是背景。
扫除背景和绘制图形间的长久工夫被用户瞥见,就是闪灼。在有些平台如PC机上闪灼比在XWindow上分明,这是由于XWindow的图像被缓存过,使得闪灼的工夫对照短。
有两种举措能够分明地削弱闪灼:重载update()或利用双缓冲。
重载update()?
当AWT吸收到一个applet的重绘哀求时,它就挪用applet的update()。
缺省地,update()扫除applet的背景,然后挪用paint()。重载update(),将之前在paint()中的画图代码包括在update()中,从而制止每次重绘时将全部地区扫除。
既然背景不在主动扫除,我们必要本人在update()中完成。我们在绘制新的线之前单独将竖线擦除,完整打消了闪灼。
publicvoidpaint(Graphicsg){
update(g);
}
publicvoidupdate(Graphicsg){
Colorbg=getBackground();
Dimensiond=size();
inth=d.height/2;
for(intx=0;x<d.width;x++){
inty1=(int)((1.0+Math.sin((x-frame)*0.05))*h);
inty2=(int)((1.0+Math.sin((x+frame)*0.05))*h);
if(y1>y2){
intt=y1;
y1=y2;
y2=t;
}
g.setColor(bg);
g.drawLine(x,0,x,y1);
g.drawLine(x,y2,x,d.height);
g.setColor(Color.black);
g.drawLine(x,y1,x,y2);
}
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net网页编程和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点 |
|