JAVA跑马灯文字效果的实现:

1. 首先创建一个继承JFrame类的HorseRaceLightTextFrame窗体类,代码如下:

package com.example.horseracelighttext;

import java.awt.Dimension;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener; import javax.swing.JFrame; public class HorseRaceLightTextFrame extends JFrame{ /**
*
*/
private static final long serialVersionUID = -1760723807752896879L; public HorseRaceLightTextFrame() {
// TODO Auto-generated constructor stub
this.addWindowListener(new WindowListener() { @Override
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub } @Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub } @Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub } @Override
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub } @Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub } @Override
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
} @Override
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub }
}); HorseRaceLightTextPanel panel = new HorseRaceLightTextPanel();
this.add(panel);
new Thread(panel).start();// 启动新线程
this.setVisible(true);
} public static void main(String[] args) {
HorseRaceLightTextFrame frame = new HorseRaceLightTextFrame();
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
frame.setSize(360, 360);
} }

2. 在HorseRaceLightTextFrame窗体类中创建内部面板类,该面板类实现了Runnable接口,重写JComponent类中的paint()方法和实现Runnable类中的run()方法。在paint完成跑马灯文字的绘制;在run()方法中实现改变跑马灯文字的x坐标值。
3. 将内部面板类HorseRaceLightTextPanel的实例添加到HorseRaceLightTextFrame窗口中,进行跑马灯文字效果的显示。内部面板类HorseRaceLightTextPanel代码如下:

package com.example.horseracelighttext;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics; import javax.swing.JPanel; /***
* 跑马灯文字效果Panel
* @author lenovo'
*
*/
public class HorseRaceLightTextPanel extends JPanel implements Runnable { String value = "这是一个文字跑马灯范例,谢谢!"; //需要绘制的文字
char[] drawChar = value.toCharArray();
int[] x = new int[drawChar.length]; //绘制每个字符的x坐标
int y = 100; //绘制文字的y坐标 @Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
g.clearRect(0, 0, getWidth(), getHeight()); //清除绘制前上下文内容
Font font = new Font("华文楷体", Font.BOLD, 20); //创建字体样式对象
g.setFont(font); //设置字体样式
g.setColor(Color.RED); //设置字体颜色
for (int j = drawChar.length - 1; j >= 0; j--) {
g.drawString(drawChar[drawChar.length - 1 - j] + "", x[j], y); //绘制字符
}
} @Override
public void run() {
// TODO Auto-generated method stub try {
boolean flag = false; //为false表示第一次执行,x坐标进行等比递增,否则进行等差递增
while (true) {
Thread.sleep(300);
for (int i = drawChar.length - 1; i >= 0; i--) {
if (!flag) {
x[i] = x[i] + 20 * i; //x坐标进行等比递增
} else {
x[i] = x[i] + 20; //x坐标进行等差递增
} if (x[i] >= 360 -20) { //大于窗体宽度-20时,坐标值为0
x[i] = 0;
} }
repaint(); //重新绘制图像
if (!flag) {
flag = true;
}
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

本文摘自:《JAVA开发实战1200例》---王家林

JAVA 跑马灯文字效果的更多相关文章

  1. marquee标签属性详解(跑马灯文字效果)

    请大家先看下面这段代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  2. Android:TextView文字跑马灯的效果实现

    解决TextView文字显示不全的问题. 简单设置跑马灯的效果: <TextView android:id="@+id/textView" android:layout_wi ...

  3. 在android中用跑马灯的效果显示textview

    大家好,在我们通常的android project中,通常需要用到textview这一个布局文件,并且对于这一个显示布局所需要的文本文字内容. 下面我们就来介绍一种方法来实现在android中用跑马灯 ...

  4. Android 高级UI设计笔记05:使用TextView实现跑马灯的效果

    1. 使用TextView属性实现跑马灯的效果: (1). 新建一个Android工程,命名为"MarqueeTextViewDemo",如下: (2). 来到activity_m ...

  5. 它们的定义TextView使之具有跑马灯的效果

    一.引入问题 使用通用textview快乐效应,焦点事件不启动滚动,button目前的焦点事件,但丑,因此,需要定制TextView 天生焦点 个textview FocusedTextView.ja ...

  6. android使用TextView实现跑马灯的效果(1)

    android使用TextView实现跑马灯的效果 1.activity_main.xml <?xml version="1.0" encoding="utf-8& ...

  7. TextView来实现跑马灯的效果

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  8. 浅谈TextView Ellipsize效果与Marquee跑马灯无效果问题

    说到TextView 效果,相信大家一定熟悉跑马灯. 先来看看 Ellipsize是什么,Ellipsize 从开发技术上翻译为省略效果.故名思议,就是当文本无法显示全部时,用什么效果来显示未显示的部 ...

  9. html跑马灯/走马灯效果

    实现跑马灯的方法很多,其中最简单的是采用一句Html代码来实现,我们在需要出现跑马灯效果的地方插入“<marquee>滚动的文字</marquee>”语句,它的效果如下所示: ...

随机推荐

  1. 阅读zepto.js的core中的Core methods

    学习zepto.js,參考资料:http://www.zeptojs.cn/ 跟jQuery一样.其选择符号也是$; 首先接触的是 $.()  选择 $(selector, [context]) ⇒ ...

  2. 谷歌下解决Pop遮罩层无法遮挡滚动栏下问题

    今天用pop的弹出窗体里,出现一个问题,当网页出现滚动栏里,不能遮挡住,解决Pop遮罩层无法遮挡滚动栏下问题. 可通过下载获取改动后的代码----->进入下载

  3. 《JavaScript设计模式与开发实践》读书笔记之观察者模式

    1.观察者模式 观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知. JavaScript中通常采用事件模型替代传统的观察者模式 1.1 逐步实现观 ...

  4. TestThreadPoolExecutor.java

    package           ; import java.io.IOException;import java.io.InputStream;import java.util.List;impo ...

  5. 重新想象 Windows 8 Store Apps (3) - 控件之内容控件: ToolTip, Frame, AppBar, ContentControl, ContentPresenter; 容器控件: Border, Viewbox, Popup

    原文:重新想象 Windows 8 Store Apps (3) - 控件之内容控件: ToolTip, Frame, AppBar, ContentControl, ContentPresenter ...

  6. 清除Android工程中没用到的资源(转)

    项目需求一改再改,UI一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理 ...

  7. hdu 2049 别easy列(4)——测试新郎

    问题: 使用double定义的数量和long数定义19-20出现分歧,原因不明.求大公社. 这个问题需要用long,否则,只是通过,这应该纠结了很久. 问题是乘以一个交错的思想相结合. 不easy系列 ...

  8. 【白痴弟弟和你加强应用层】阅读 Develop API Guides 思考(一个)

    转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 动态检測设备属性 关于targetSdkVersion的含义 关于onSaveInstanceState的高 ...

  9. Java NIO框架Netty课程(一) – Hello Netty

    首先啰嗦2,假如你不知道Netty怎么办怎么办.它可以是一个简单的搜索,找出.我只能说Netty是NIO该框架,它可用于开发分布式Java计划.详细情况可以做,我们可以尝试用你的想象力. 技术,它是服 ...

  10. Directx11学习笔记【十四】 使用最新的Effect框架和SDK

    由于之前一直在看directx11龙书学习,因此sdk一直用的Microsoft DirectX SDK (June 2010) 版本,最近在stackoverflow上问dx11相关问题时,一直被大 ...