跑马灯的问题

我写了二个跑马灯的程序,代码如下

第一个:

import java.awt.event.*;

import javax.swing.*;

public class PmdLabel extends JApplet implements Runnable

{

String strLabel, strPmd, strPmdTemp;

Thread T;

public void init()

{

strLabel = new String("☆欢迎光临当当的小站☆");

strPmdTemp = "";

T = new Thread(this);

T.start();

}

public void run()

{

while(true)

{

strPmd = "";

for(int i = 0; i < strLabel.length(); i++)

{

this.showStatus(strPmd);

strPmd += strLabel.charAt(i);

try

{

T.sleep(500);

}

catch(Exception e)

{

e.printStackTrace();

}

}

for(int i = 0; i < strPmd.length(); i++)

{

strPmdTemp = strPmd.substring(i, strPmd.length());

this.showStatus(strPmdTemp);

try

{

T.sleep(500);

}

catch(Exception e)

{

e.printStackTrace();

}

}

}

}

}

第二个:

import javax.swing.*;

import java.awt.*;

public class FontTest extends JApplet implements Runnable

{

String str, strTemp1, strTemp2;

JLabel lblstr;

Font f;

Thread T;

public void init()

{

this.getContentPane().setLayout(new FlowLayout());

str = "锄禾日当午";

lblstr = new JLabel();

this.getContentPane().add(lblstr);

f = new Font("楷体_GB2312", Font.PLAIN, 36);

T = new Thread(this);

T.start();

}

public void run()

{

while(true)

{

strTemp1 = "";

for(int i = 0; i < str.length(); i++)

{

if(i == 0)

strTemp1 = "";

else

{

for(int j = 0; j < str.length()-(str.length()-i); j++)

{

strTemp1 += " ";

}

}

try

{

T.sleep(1000);

}

catch(Exception e)

{

e.printStackTrace();

}

strTemp2 =strTemp1 + str.charAt(i);

lblstr.setFont(f);

lblstr.setText(strTemp2);

lblstr.validate();

}

}

}

}

请大家先运行代码

我感觉第二个有些问题,总觉得空格没有控制好,请大家帮忙改正一下代码,谢谢!----------------解决方案--------------------------------------------------------

import javax.swing.*;

import java.awt.*;

public class FontTest extends JApplet implements Runnable

{

String str;

JLabel lblstr;

Font f;

Thread T;

public void init()

{

this.getContentPane().setLayout(new BorderLayout());

str = "锄禾日当午";

lblstr = new JLabel();

this.getContentPane().add(lblstr,BorderLayout.NORTH);

f = new Font("楷体_GB2312", Font.PLAIN, 36);

lblstr.setFont(f);

T = new Thread(this);

T.start();

}

public void run()

{

while(true)

{

for(int i = 0; i < str.length(); i++)

{String strTemp1 = "";

for(int j = 0; j < i; j++)

{

strTemp1 += " ";

}

try

{

T.sleep(1000);

}

catch(Exception e)

{

e.printStackTrace();

}

String strTemp2 =strTemp1 + str.charAt(i);

lblstr.setText(strTemp2);

lblstr.validate();

}

}

}

}

你的程序有几个要注意的问题

1,能用局部变量的尽量用局部变量,这样程序会快一些。

2,你的循环弄错了,应把strTemp1在每次进入循环增加空格的时候,都要规零,

否则的话就会出现你那种到后来距离越来越大的感觉

3,你要设置两个空格才能有一个中文字的大小,记住,空格的大小只有一个英文字母那么大。

4,窗口布局要设成BorderLayout才看得更明显一些,因为FlowLayout是居中排列的,也就是说把你的字符串按长度一分为二,一半在左,一半在右,这想必也不是你想看到的结果吧。

5,能简化代码就尽量简化代码,像你原来的代码中的

if(i == 0)

strTemp1 = "";

else

{

for(int j = 0; j < str.length()-(str.length()-i); j++)

{

strTemp1 += " ";

}

}

就是一个多余,没有必要先判断一次i是否等于0;而是直接写for就可以了吗,让for去判断岂不是更好,还有str.length()-(str.length()-i); 是什么东西,这不可以化简成i 吗,岂不是更好看

for(int j = 0; j < i; j++)

{

strTemp1 += " ";

}

是不是好看多了,也快捷多了

----------------解决方案--------------------------------------------------------

谢谢指导,已经明白了。

----------------解决方案--------------------------------------------------------

java实现文字跑马灯_跑马灯的问题相关推荐

  1. java编写文字三国杀初学_文字版三国杀开发

    近期考期偷闲开发娱乐项目文字版三国杀,历时一个月基本完成,工程量10000+行 那么主要亮点是? checkstyle满分✌️ 简介 开发语言:java 运行模式:图形界面 / 命令行 支持武将:标准 ...

  2. php实现跑马灯闪亮,JavaScript_基于jquery实现的文字向上跑动类似跑马灯的效果,想实现一个类似跑马灯的效果, - phpStudy...

    基于jquery实现的文字向上跑动类似跑马灯的效果 想实现一个类似跑马灯的效果,发现跑马灯有空格.效果也不美观,于是用jquery写了个 页面代码 恭喜187****5204获得1000RBM 恭喜1 ...

  3. 兄弟们,快醒醒,我们的跑马灯不跑了。

    销售GG在工作群里:"弟兄们,快醒醒,咱现场的跑马灯不跑了." 还在加班的程序猿:"已经查过了,程序没Bug." 带娃玩的硬件攻城狮:"硬件没问题,这 ...

  4. shell脚本触发java程序支持传参补跑 +crontab定时器+每天生成日期文件_03

    文章目录 1. 脚本升级 2. 执行测试 3. 脚本关键词简述 补充案例 上一篇: shell脚本触发java程序支持传参补跑 +crontab定时器_02 https://gblfy.blog.cs ...

  5. shell脚本触发java程序支持传参补跑 +crontab定时器_02

    文章目录 1. 创建定时任务 2. 查看定时任务是否执行 上一篇: shell脚本触发java程序支持传参补跑_01 https://gblfy.blog.csdn.net/article/detai ...

  6. shell脚本触发java程序支持传参补跑_01

    文章目录 一.java程序 1. 创建java项目 2. 创建包结构 3. 创建java类 4. 编译 5. 编译后的包结构总览 二.shell脚本 2.1. 创建基础目录 2.2. 上传项目到指定目 ...

  7. 天天酷跑java_利用Java怎么实现一个天天酷跑游戏

    利用Java怎么实现一个天天酷跑游戏 发布时间:2020-12-15 17:25:03 来源:亿速云 阅读:102 作者:Leah 利用Java怎么实现一个天天酷跑游戏?很多新手对此不是很清楚,为了帮 ...

  8. win10计算机跑分,鲁大师如何跑分_鲁大师跑分详细教程

    很多小伙伴都知道鲁大师可以测试电脑的性能,就是大家称为的跑分,跑分的大小跟电脑的性能成正比,跑的越高性能越好.那么该如何在鲁大师里面进行跑分测试呢?其实只要打开性能测试就可以了,具体的教程下面一起来看 ...

  9. java 字符串文字筛选_重新开始Java的原始字符串文字讨论

    java 字符串文字筛选 在2018年12月宣布 将从JDK 12中删除原始字符串文字 . 现在,在新的一年中,与Java中原始字符串文字的设计有关的讨论又开始了. 在琥珀色专家OpenJDK邮件列表 ...

  10. java 字符串文字筛选_拜托,Java。 最终是否支持多行字符串文字

    java 字符串文字筛选 我了解Java语言的思想很难以向后兼容的方式进行维护. 我知道JDK API(例如集合)的想法很难打破. 是. 我不明白为什么Java 仍然没有多行字符串文字. 您多久编写一 ...

最新文章

  1. 替换k个字符后最长重复子串
  2. java 去除干扰_【Selenium-WebDriver实战篇】Java丨验证码图片去除干扰像素,方便验证码的识别(转)...
  3. 误删表数据,如何恢复过来
  4. DFMZ-开发过程中遇到的错误-01
  5. JavaWeb文件上传(2)--使用fileupload组件
  6. android GPS
  7. 需要视频素材?这个6个网站就够了
  8. Epub电子书的格式(二)
  9. 经营报表-FineReport配置Oracle外接数据库(2)
  10. Android锁屏状态下信息的显示
  11. Rstuio read.csv():列的数目比列的名字要多
  12. Elasticsearch的查询
  13. 汽车以太网测试之UpperTester
  14. macbook系统占用硬盘大_mac book pro 系统占用的硬盘空间太大怎么办?
  15. 致Java开发者:济南java工资待遇
  16. node爬虫进阶之——登录
  17. 【从基础概念到手写】防抖-节流函数的基本实现和补充
  18. 【HCIA安全】用户认证
  19. GetAsyncKeyState() 0x8000 是什么意思
  20. SCL语言如何进行运算和表达式计算?

热门文章

  1. 2022低压电工上岗证题目及答案
  2. android音频框架
  3. 各个版本Word转Pdf时出现有关PDFMaker加载项崩溃或错误的解决方法
  4. wxwindows编译
  5. html播放flv直播源码,使用flv.js实现HTML5播放FLV视频文件
  6. EVC下如何直接访问寄存器?
  7. Cognos组织架构介绍
  8. 暴风影音2007全功能完美版和Symantec Norton的冲突
  9. 使用XMind打开.mmap文件
  10. eclipse的下载及安装教程