- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
练习82 跳跃的文字
本例知识点 一句话讲解 新学知识 Thread类 管理线程 使用Font类 设置字体 已学知识 String类 处理字符串 使用Graphics类 图形类 一、练习具体要求
本练习制作跳跃的文字的实例。如图82-1所示,程序执行后,创建一个带有跳跃的文字的面板,文字的字体和字型可以通过程序设置,文字的跳跃速度是一定的,文字跳跃位置的坐标是随机产生。
二、程序及注释
(1)编程思路:首先,本练习因为要制作跳跃的文字的实例,所以首先要设置要显示的文字:先通过语句s = getParameter(text)得到文字,如果s为空,则通过语句s = I Like Java将跳跃的文字的内容设置为“I Like Java”,然后通过语句separated = new char [s.length()]和s.getChars(0,s.length(),separated,0)设置分割,最后通过语句setFont(new Font(TimesRoman,Font.BOLD,36))设置字体和字号。然后,因为要实现跳跃效果,所以要用到线程,首先在函数public void start()里通过语句killme = new Thread(this)生成线程,通过语句killme.start()启动线程,在public void run()函数里运行线程,在public void stop()撤销线程,这样使线程很好的配合了小程序的运行流程。最后,通过函数public boolean mouseDown(java.awt.Event evt, int x, int y) 响应按下鼠标的动作。
(2)程序实现及注释:
//NervousText.java
import java.awt.Graphics;
import java.awt.Font;
public class NervousText extends java.applet.Applet implements Runnable {
//变量定义
char separated[];
String s = null;
Thread killme = null;
int i;
int x_coord = 0, y_coord = 0;
String num;
int speed=35;
int counter =0;
boolean threadSuspended = false;
//初始化小程序
public void init() {
//设置显示的文字
s = getParameter(text);
if (s == null) {
s = I Like Java;
}
//设置分割
separated = new char [s.length()];
s.getChars(0,s.length(),separated,0);
resize(150,50);
//设置字体
setFont(new Font(TimesRoman,Font.BOLD,36));
}
//启动小程序
public void start() {
if(killme == null)
{
killme = new Thread(this);
killme.start();
}
}
//停止小程序
public void stop() {
killme = null;
}
//运行小程序
public void run() {
while (killme != null) {
try {Thread.sleep(100);} catch (InterruptedException e){}
repaint();
}
killme = null;
}
//画屏函数
public void paint(Graphics g) {
for(i=0;is.length();i++)
{
x_coord = (int) (Math.random()*10+15*i);
y_coord = (int) (Math.random()*10+36);
g.drawChars(separated, i,1,x_coord,y_coord);
}
}
//响应按下鼠标
public boolean mouseDown(java.awt.Event evt, int x, int y) {
if (threadSuspended) {
killme.resume();
文档评论(0)