java实现文字跑马灯_跑马灯的问题
跑马灯的问题
我写了二个跑马灯的程序,代码如下
第一个:
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实现文字跑马灯_跑马灯的问题相关推荐
- java编写文字三国杀初学_文字版三国杀开发
近期考期偷闲开发娱乐项目文字版三国杀,历时一个月基本完成,工程量10000+行 那么主要亮点是? checkstyle满分✌️ 简介 开发语言:java 运行模式:图形界面 / 命令行 支持武将:标准 ...
- php实现跑马灯闪亮,JavaScript_基于jquery实现的文字向上跑动类似跑马灯的效果,想实现一个类似跑马灯的效果, - phpStudy...
基于jquery实现的文字向上跑动类似跑马灯的效果 想实现一个类似跑马灯的效果,发现跑马灯有空格.效果也不美观,于是用jquery写了个 页面代码 恭喜187****5204获得1000RBM 恭喜1 ...
- 兄弟们,快醒醒,我们的跑马灯不跑了。
销售GG在工作群里:"弟兄们,快醒醒,咱现场的跑马灯不跑了." 还在加班的程序猿:"已经查过了,程序没Bug." 带娃玩的硬件攻城狮:"硬件没问题,这 ...
- shell脚本触发java程序支持传参补跑 +crontab定时器+每天生成日期文件_03
文章目录 1. 脚本升级 2. 执行测试 3. 脚本关键词简述 补充案例 上一篇: shell脚本触发java程序支持传参补跑 +crontab定时器_02 https://gblfy.blog.cs ...
- shell脚本触发java程序支持传参补跑 +crontab定时器_02
文章目录 1. 创建定时任务 2. 查看定时任务是否执行 上一篇: shell脚本触发java程序支持传参补跑_01 https://gblfy.blog.csdn.net/article/detai ...
- shell脚本触发java程序支持传参补跑_01
文章目录 一.java程序 1. 创建java项目 2. 创建包结构 3. 创建java类 4. 编译 5. 编译后的包结构总览 二.shell脚本 2.1. 创建基础目录 2.2. 上传项目到指定目 ...
- 天天酷跑java_利用Java怎么实现一个天天酷跑游戏
利用Java怎么实现一个天天酷跑游戏 发布时间:2020-12-15 17:25:03 来源:亿速云 阅读:102 作者:Leah 利用Java怎么实现一个天天酷跑游戏?很多新手对此不是很清楚,为了帮 ...
- win10计算机跑分,鲁大师如何跑分_鲁大师跑分详细教程
很多小伙伴都知道鲁大师可以测试电脑的性能,就是大家称为的跑分,跑分的大小跟电脑的性能成正比,跑的越高性能越好.那么该如何在鲁大师里面进行跑分测试呢?其实只要打开性能测试就可以了,具体的教程下面一起来看 ...
- java 字符串文字筛选_重新开始Java的原始字符串文字讨论
java 字符串文字筛选 在2018年12月宣布 将从JDK 12中删除原始字符串文字 . 现在,在新的一年中,与Java中原始字符串文字的设计有关的讨论又开始了. 在琥珀色专家OpenJDK邮件列表 ...
- java 字符串文字筛选_拜托,Java。 最终是否支持多行字符串文字
java 字符串文字筛选 我了解Java语言的思想很难以向后兼容的方式进行维护. 我知道JDK API(例如集合)的想法很难打破. 是. 我不明白为什么Java 仍然没有多行字符串文字. 您多久编写一 ...
最新文章
- 替换k个字符后最长重复子串
- java 去除干扰_【Selenium-WebDriver实战篇】Java丨验证码图片去除干扰像素,方便验证码的识别(转)...
- 误删表数据,如何恢复过来
- DFMZ-开发过程中遇到的错误-01
- JavaWeb文件上传(2)--使用fileupload组件
- android GPS
- 需要视频素材?这个6个网站就够了
- Epub电子书的格式(二)
- 经营报表-FineReport配置Oracle外接数据库(2)
- Android锁屏状态下信息的显示
- Rstuio read.csv():列的数目比列的名字要多
- Elasticsearch的查询
- 汽车以太网测试之UpperTester
- macbook系统占用硬盘大_mac book pro 系统占用的硬盘空间太大怎么办?
- 致Java开发者:济南java工资待遇
- node爬虫进阶之——登录
- 【从基础概念到手写】防抖-节流函数的基本实现和补充
- 【HCIA安全】用户认证
- GetAsyncKeyState() 0x8000 是什么意思
- SCL语言如何进行运算和表达式计算?