最近写了一段抖动文字的代码
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;
}
}
相关推荐
通常,这个页面会有一个包含待抖动文字的元素,以及一个JavaScript脚本来控制抖动行为。脚本中可能定义了一个函数,该函数会修改文字元素的CSS样式,然后通过`setTimeout`或`setInterval`来定期调用自身,形成循环。...
"jQuery文字图片抖动效果代码"是一个实现这种视觉特效的资源,它利用jQuery库来创建文字和图片的抖动动画。jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画以及Ajax交互,使得开发者能够更...
js 特效 html 特效 文字抖动 js 特效 html 特效 文字抖动
【文字和图片抖动提醒demo】是一个Android应用的示例项目,主要展示了如何在移动设备上实现文字和图片的动态抖动效果,以达到吸引用户注意力或者作为通知提醒的目的。这个项目对于Android开发者来说,是一个很好的...
"jQuery文字图片抖动效果代码.zip"是一个集合,提供了使用jQuery库实现的多种文字和图片抖动特效。jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务,使得开发者能够更...
js 特效 html 特效 文字抖动特效 js 特效 html 特效 文字抖动特效
首先,我们来看CSS3实现文字或图片抖动的步骤: 1. **CSS3关键帧动画**:CSS3的`@keyframes`规则允许我们定义一个动画的过程,从一个样式变化到另一个样式。例如,我们可以创建一个名为`shake`的动画,使元素在水平...
缩放在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方法对象
然而,在实际使用过程中,有时会遇到一些意想不到的问题,比如在结合Vant的轮播组件`van-swipe`与CSS Flex布局时,可能会碰到文字抖动的现象。这个问题主要发生在轮播图片切换时,文字元素随着轮播的动画效果产生不...
文件选择器, 自定义光标, HTML浏览器, 抖动文字, 阴影文字, 波浪文字, 飞行文字, 控件的相互控制与消息传递, 伸展文字, 用Applet显示图片, 图片火焰效果, 图片百叶窗, 图片倒影, 图片翻折, 闹钟, 万年历, 计算器, ...
在JavaScript的世界里,特效的实现丰富了网页的交互体验,其中文字阴影的抖动效果是一种常见且有趣的视觉表现手法。这个"javascript经典特效---文字阴影的抖动.rar"压缩包包含了一个实现文字阴影抖动效果的HTML文件...
在Android开发中,有时我们希望实现一些特殊效果来提升用户体验,比如模仿iPhone的图标抖动效果。这个"Android仿Iphone抖动效果Shake Icon.zip"文件就包含了一个实现这一功能的示例代码。让我们详细了解一下如何在...
【炫酷文字抖动动画网页特效】是一种在网页设计中常用的动态效果,它通过结合JavaScript库jQuery和CSS样式来实现文字或元素的抖动动画,为网页增添视觉吸引力。这种特效通常用于吸引用户注意力,或者作为交互式按钮...
产生自己的控件 Java控件的相互控制与消息传递 Java圆形的按钮制作 ... 抖动文字 …… 有些例子是非常适合Java新手参考的,挺简单,有一些是平时不怎么用的小技巧,不过参考一下也是不多余的。
本篇文章将深入探讨如何使用jQuery实现一种常见的动画效果——“抖动”(Jitter),模仿QQ弹窗抖动的视觉效果。抖动常用于吸引用户注意力,例如在通知或警告消息中。 首先,我们需要理解jQuery中的动画方法。`...
本文将详细介绍如何利用"抖动的图片和文字——模仿抖音效果ppt模板"来实现这一目标。 首先,我们需要了解"抖动"效果是如何在PPT中实现的。抖动效果通常是通过动画路径和关键帧技术来完成的。在PPT中,你可以选择一...
首先,"颤动字"是一种通过扭曲和抖动文字边缘来制造动态效果的技术。在Photoshop中,这通常通过变形工具、滤镜或动画功能实现,可以为设计增加一种紧张或动感的氛围。 "黑白字"并非简单的颜色转换,而是涉及对比度...
<!--导入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 ...