聚光灯的代码

/** * @(#)SpotLight.java * * * @author  * @version 1.00 2008/4/26 *//** *本案例是一个实现聚光灯效果的文字特效 **/import java.awt.*;import java.applet.*;public class SpotLight extends Applet implements Runnable{ private String myText; private Font font; private int fontSize; private Thread mythread; private int spotPosition=50;//聚光灯位置 private int myTextSize=20; private int myTextWidth=0; private int fontHeight,baseLine,w; public void init(){  String fonts,temp;  myText=getParameter("text");//读取页面参数,即需要显示的文字  if(myText==null)   myText="你好!";  fonts=getParameter("fontSize");//读取字体大小  if(font==null)   fontSize=20;  else   fontSize=Integer.parseInt(fonts);  font=new Font("TimesRoman",Font.BOLD,fontSize);  FontMetrics fm=getFontMetrics(font);  fontHeight=fm.getHeight();  baseLine=getSize().height/2+fontHeight/3;  myTextWidth=fm.stringWidth(myText);  w=fm.stringWidth(myText);  w=(getSize().width-w)/2;  spotPosition=w;  setBackground(Color.black);//设置背景黑色 } public void start(){  //创建并启动线程  if(mythread==null){   mythread=new Thread(this);   mythread.start();  } }    public void stop(){ //停止线程     mythread.stop();     mythread=null;    }    public void run(){   //启动线程     while(true){      repaint();      try{       mythread.sleep(50);      }catch(InterruptedException e){      }     }    }    public void update(Graphics g){     //重新输出applet     paint(g);    }    //利用clipRect()方法,每次调用显示方法paint时,    //先用蓝色画一遍文字,再用白色在裁剪区中画一边文字    public void paint(Graphics g){     //输出applet     g.setFont(font);     g.setColor(Color.blue);     g.drawString(myText,w,baseLine);//第一遍显示     g.clipRect(spotPosition,0,myTextSize,getSize().height);//设置裁剪区域     g.setColor(Color.white);     g.drawString(myText,w,baseLine);//第二遍显示     spotPosition=(spotPosition+1)%(myTextWidth+100);//移动聚光灯位置    }}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值