JAVA 跑马灯文字效果
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 跑马灯文字效果的更多相关文章
- marquee标签属性详解(跑马灯文字效果)
请大家先看下面这段代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...
- Android:TextView文字跑马灯的效果实现
解决TextView文字显示不全的问题. 简单设置跑马灯的效果: <TextView android:id="@+id/textView" android:layout_wi ...
- 在android中用跑马灯的效果显示textview
大家好,在我们通常的android project中,通常需要用到textview这一个布局文件,并且对于这一个显示布局所需要的文本文字内容. 下面我们就来介绍一种方法来实现在android中用跑马灯 ...
- Android 高级UI设计笔记05:使用TextView实现跑马灯的效果
1. 使用TextView属性实现跑马灯的效果: (1). 新建一个Android工程,命名为"MarqueeTextViewDemo",如下: (2). 来到activity_m ...
- 它们的定义TextView使之具有跑马灯的效果
一.引入问题 使用通用textview快乐效应,焦点事件不启动滚动,button目前的焦点事件,但丑,因此,需要定制TextView 天生焦点 个textview FocusedTextView.ja ...
- android使用TextView实现跑马灯的效果(1)
android使用TextView实现跑马灯的效果 1.activity_main.xml <?xml version="1.0" encoding="utf-8& ...
- TextView来实现跑马灯的效果
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- 浅谈TextView Ellipsize效果与Marquee跑马灯无效果问题
说到TextView 效果,相信大家一定熟悉跑马灯. 先来看看 Ellipsize是什么,Ellipsize 从开发技术上翻译为省略效果.故名思议,就是当文本无法显示全部时,用什么效果来显示未显示的部 ...
- html跑马灯/走马灯效果
实现跑马灯的方法很多,其中最简单的是采用一句Html代码来实现,我们在需要出现跑马灯效果的地方插入“<marquee>滚动的文字</marquee>”语句,它的效果如下所示: ...
随机推荐
- Oracle 数据迁移(从Oracle11G迁移到更高的版本号Oracle10G低版本号)
1.数据库状况 生产环境是11G,linux系统,測试环境是10G,windows系统,须要从生产环境导出一个用户下全部的数据,导入測试环境中. 由于数据量比較小,准备採用EXP和IMP工具来做 ...
- 【filezilla】 ubuntu下安装filezilla
sudo apt-get install filezilla '安装filezilla3.6.02 filezilla '执行filezilla
- 【spring源代码分析】--Bean的解析与注冊
接着上一节继续分析,DefaultBeanDefinitionDocumentReader的parseBeanDefinitions方法: protected void parseBeanDefini ...
- Screwturn搭建企业内部wiki
企业内部WIKI搭建 本文所使用的是Screwturn 基于asp.net webform和Sql server的. 仅仅要把本文资源下载下来,直接用IIS部署,然后更改web.config的conn ...
- LAMBDA表达式常用 (全)
这里主要是将数据库中的常用操作用LAMBDA表达式重新表示了下,用法不多,但相对较常用,等有时间了还会扩展,并将查询语句及LINQ到时也一并重新整理下: 1.select语句:books.Select ...
- poj1364(差分约束系统)
poj1364 设s[i] 表示a1 + a2 + ... + a(i-1)的和 给我们n个点,m条约束 如果是a b gt c 那么表示 s[a+b+1] - s[a] > c ...
- 项目构建之maven篇:2.HelloWorld项目构建过程
文件结构说明: 项目构建生命周期: 清理 编译 測试 打包 执行 部署 清理与编译 hello\pom.xml POM:Project Object Model,项目对象模型 pom.xml与ant的 ...
- Blink: Chromium的新渲染引擎
编自http://www.chromium.org/blink 关于blink Google Chrome/Chromium 从创始至今一直使用 WebKit(WebCore) 作为 HTML/CSS ...
- 【原创】leetCodeOj --- Binary Search Tree Iterator 解题报告
时间挤挤总是有的 太久不做题,脑子都生锈了.来道水题练练手 题目地址: https://leetcode.com/problems/binary-search-tree-iterator/ 题目内容: ...
- 玩转web之javaScript(五)---js和jquery一些不可不知的方法(input篇)
很多时候我们都利用js和jquery中操作input,比如追加属性,改变属性值等等,我在这里简单的整理了一下,并在以后逐步补充. 1:删除input的某一属性. <input name=&quo ...