加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

java实现文字跑马灯效果

(2013-03-09 10:21:19)
标签:

杂谈

运行效果图:


源码:

import java.awt.Color;

import java.awt.EventQueue;

import java.awt.FlowLayout;

import java.util.Random;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.UIManager;

import javax.swing.border.EmptyBorder;

public class DynamicTextLabel extends JFrame {

    

    

    private static final long serialVersionUID -2035256617544621708L;

    private JPanel contentPane;

    private JLabel label;

    

    

    public static void main(String[] args) {

        try {

            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

        catch (Throwable e) {

            e.printStackTrace();

        }

        EventQueue.invokeLater(new Runnable() {

            public void run() {

                try {

                    DynamicTextLabel frame new DynamicTextLabel();

                    frame.setVisible(true);

                catch (Exception e) {

                    e.printStackTrace();

                }

            }

        });

    }

    

    

    public DynamicTextLabel() {

        setTitle("文字的跑马灯效果");// 设置窗体的标题

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置关闭窗体时的动作

        setBounds(100, 100, 400, 70);// 设置窗体的位置和大小

        contentPane new JPanel();

        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));// 设置面板的边框

        setContentPane(contentPane);

        contentPane.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));// 设置面板的布局

        

        label new JLabel("百度空间--shensuiliunian");// 创建标签

        contentPane.add(label);

        

        new Thread(new DynamicThread()).start();// 启动新线程

    }

    

    private class DynamicThread implements Runnable {// 使用内部类完成标签移动操作

    

        @Override

        public void run() {

            while (true) {

                for (int 0; 400; i++) {

                    try {

                        Thread.sleep(10);// 线程休眠0.01秒

                    catch (InterruptedException e) {

                        e.printStackTrace();

                    }

                    label.setLocation(i, 5);// 移动标签

                    if (i 20 == 0) {

                        int new Random().nextInt(256);

                        int new Random().nextInt(256);

                        int new Random().nextInt(256);

                        

                        label.setForeground(new Color(r, g, b));

                        

                    }

                }

            }

        }

    }

}



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有