最近写了一段抖动文字的代码
import java.awt.*;
import java.applet.*;
import java.util.Random;
//跳动文字
/*dkplus专业搜集和编写实用电脑软件教程,
*搜集各种软件资源和计算机周边,独立制作视频和ppt和音频微信公众号,
*点击进入 dkplus官方博客 (java网络编程http://dkplus.iteye.com),
*微信搜索dkplus关注公众号可获取海量计算机周边资源。*/
public classJumpTextAppletextendsAppletimplementsRunnable{
String message; //待显示的文本信息
Thread jumpThread; //实现跳动文字的线程
int fontHeight,speed,baseline; //字体高度,跳动速度和基线
Color textColor,bgColor; //文字颜色与背景颜色
Image jumpImage; //实现跳动的Image对象
Graphics jumpGraphics; //实现跳动的Graphics对象
boolean normal; //文字是否跳动的标志
Font font; //显示字体
FontMetrics fontMetric; //显示字体的FontMetrics对象
Color randomColors[]; //随机生成颜色
boolean randomColor; //是否是随机颜色
publicvoidinit(){ //初始化
Graphics graphics = getGraphics(); //得到graphics对象
Dimension dim=getSize(); //得到尺寸
fontHeight=dim.height-10; //根据Applet尺寸设置文字高度
jumpImage=createImage(dim.width,dim.height); //创建Image对象
jumpGraphics = jumpImage.getGraphics(); //得到Graphics对象
message=getParameter("text"); //得到显示文字
if (message==null){
message="跳动的文字"; //设置默认文字
}
int textWidth=dim.width-(message.length() + 1)*5-10; //设置文字宽度
do{
graphics.setFont(new Font("TimesRoman", 1, fontHeight)); //设置显示字体
fontMetric = graphics.getFontMetrics(); //得到FontMetric对象
if(fontMetric.stringWidth(message)>textWidth) //根据文字宽度调整其高度
fontHeight--;
}
while(fontMetric.stringWidth(message) > textWidth);{
baseline = getSize().height - fontMetric.getMaxDescent(); //调整显示基线位置
}
font = new Font("TimesRoman", 1, fontHeight); //得到字体实例
String param; //参数字符串
if((param = getParameter("TEXTCOLOR")) == null) //得到文本颜色
textColor = Color.black; //设置默认文本颜色
else
textColor = new Color(Integer.parseInt(param)); //设置文本颜色
if((param = getParameter("BGCOLOR")) == null) //得到背景颜色
bgColor = Color.lightGray; //设置默认背景颜色
else
bgColor = new Color(Integer.parseInt(param));
setBackground(bgColor); //设置背景颜色
if((param = getParameter("SPEED")) != null) //得到跳动速度
speed = Integer.valueOf(param).intValue();
if(speed == 0)
speed = 200; //设置默认跳动速度
if((param = getParameter("RANDOMCOLOR")) != null) //得到是否是随机颜色参数
randomColor = (Integer.valueOf(param).intValue()!=0); //参数值不为零,则为随机颜色
if((param = getParameter("NORMAL")) != null) //得到是否是随机颜色参数
normal = (Integer.valueOf(param).intValue()!=0); //参数值不为零,则为随机颜色
if (randomColor){ //初始化随机颜色数组
Random random=new Random(); //实例化Random对象
int r,g,b; //颜色的RGB值
for (int i=0;i<10;i++){
r=random.nextInt(255); //得到0到255之间的随机值
g=random.nextInt(255);
b=random.nextInt(255);
Color randomc=new Color(r,g,b); //生成颜色实例
randomColors[i]=randomc; //设置数组值
}
}
jumpThread = new Thread(this); //实例化跳动文字线程
}
publicvoidstart(){ //开始运行线程
if(jumpThread == null) {
jumpThread = new Thread(this);
}
jumpThread.start();
}
publicvoidrun(){ //线程运行主体
while(jumpThread!=null) {
try{
Thread.sleep(speed); //线程休眠,即跳动间隔时间
}
catch(InterruptedException ex) {}
repaint(); //重绘屏幕
}
System.exit(0); //退出程序
}
publicvoidpaint(Graphics g){ //绘制Applet
if(normal) { //如果是静态文本
g.setColor(bgColor); //设置当前颜色
g.fillRect(0, 0, getSize().width, getSize().height); //绘制填充矩形
g.setColor(textColor); //设置当前颜色
g.setFont(font); //设置当前字体
g.drawString(message, (getSize().width - fontMetric.stringWidth(message)) / 2, baseline); //绘出字符串
}
}
publicvoidupdate(Graphics g){ //更新Applet
jumpGraphics.setColor(bgColor); //设置当前颜色
jumpGraphics.fillRect(0, 0, getSize().width, getSize().height); //绘制填充矩形
jumpGraphics.setColor(textColor); //设置当前颜色
jumpGraphics.setFont(font); //设置字体
if(!normal){ //如果是跳动文字
int xpoint = 0;
for(int j = 0; j < message.length(); j++){
if(randomColor){
Color color;
while(bgColor == (color = randomColors[Math.min(9, (int)(Math.random()*10))])); //得到颜色数组中与背景色不同的一个随机颜色
jumpGraphics.setColor(color); //设置当前颜色
}
xpoint += (int)(Math.random() * 10); //单个字符的X坐标
int ypoint = baseline - (int)(Math.random() * 10); //单个字符的Y坐标
String s1 = message.substring(j, j + 1);
jumpGraphics.drawString(s1, xpoint, ypoint);
xpoint += fontMetric.stringWidth(s1);
}
}
else { //如果是静态文本
jumpGraphics.drawString(message, (getSize().width - fontMetric.stringWidth(message)) / 2, baseline); //绘制字符串
}
g.drawImage(jumpImage, 0, 0, this); //绘制Image
}
publicJumpTextApplet(){ //构造函数
speed = 100; //初始速度
normal = false; //初始时为动态文本
randomColors = new Color[10]; //初始化随机颜色数组
randomColor = false;
}
}
相关推荐
文字抖动特效.rar文字抖动特效.rar文字抖动特效.rar文字抖动特效.rar文字抖动特效.rar文字抖动特效.rar
js 特效 html 特效 文字抖动 js 特效 html 特效 文字抖动
jquery实现的抖动效果,包含文字、图片,可以直接复制使用
文字和图片抖动提醒demo [注意:本资源来自网络,如有侵权,请联系我删除,谢谢。]
js 特效 html 特效 文字抖动特效 js 特效 html 特效 文字抖动特效
jquery文字图片抖动效果代码基于jquery.1.7.2.min.js插件制作,多种文字图片抖动特效,包括慢抖、小抖、水平抖动、垂直抖动、旋转抖动、不透明抖动、疯狂抖动等共8种文字图片抖动效果。
缩放在IE浏览器下会有抖动 transform缩放在IE浏览器下会有抖动 可以在缩放的同时添加一个旋转 如: transform: scale(1.2); 换成: transform: scale(1.2) rotate(0.1deg); transform:translate();偏移会使图片或...
js 特效 html 特效 抖动的重要提醒文字 js 特效 html 特效 抖动的重要提醒文字
纯javascript生成特效 应用到JS数组DIV switch等JS方法对象
文件选择器, 自定义光标, HTML浏览器, 抖动文字, 阴影文字, 波浪文字, 飞行文字, 控件的相互控制与消息传递, 伸展文字, 用Applet显示图片, 图片火焰效果, 图片百叶窗, 图片倒影, 图片翻折, 闹钟, 万年历, 计算器, ...
文字阴影的抖动.rar文字阴影的抖动.rar文字阴影的抖动.rar文字阴影的抖动.rar文字阴影的抖动.rar文字阴影的抖动.rar
产生自己的控件 Java控件的相互控制与消息传递 Java圆形的按钮制作 ... 抖动文字 …… 有些例子是非常适合Java新手参考的,挺简单,有一些是平时不怎么用的小技巧,不过参考一下也是不多余的。
解决vue使用vant轮播组件swipe + flex时文字抖动问题 原抖动效果 改后效果 解决方法 在外层容器的css里加上:transform: translateZ(0); 部分页面代码 (item,index) in meetingList" :key="index"> ...
<!--导入CSS样式--> <!--使用如下--> <div class="shake">shake <div class="shake shake-hard">shake-hard <div class="shake shake-slow">shake-slow <div class="shake shake-little">shake-little ...
html 中文字或图片的抖动效果,很简单的例子,可以调节抖动的频率
Android仿Iphone抖动效果Shake Icon.zip
实例25抖动文字 实例26 阴影文字 实例27 3D文字 实例28 波浪文字 实例29 飞行文字 实例30 伸展文字 实例31 用Applet显示图片 实例32 图片火焰效果 实例33 图片百叶窗 实例34 图片倒影 实例35 图片翻折 实例36 闹钟 ...
抖动的重要提醒文字.rar抖动的重要提醒文字.rar抖动的重要提醒文字.rar抖动的重要提醒文字.rar抖动的重要提醒文字.rar抖动的重要提醒文字.rar
著名大学校徽图片炫酷抖动,矢量卡通图片抖动,文字抖动,仿抖音效果文字及图片抖动炫酷动画ppt特效,模仿抖音效果ppt模板。
jquery抖动实现 模仿QQ弹窗抖动