Java基于线程实现带有滚动效果的Label标签实例

网友投稿 208 2023-07-31


Java基于线程实现带有滚动效果的Label标签实例

本文实例讲述了java基于线程实现带有滚动效果的Label标签。分享给大家供大家参考。具体如下:

import java.awt.Graphics;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

/**

* Java中用线程实现带有滚动效果的Label标签

*/

public class Test extends JFrame {

private static final long serialVersionUID = -2397593626990759111L;

private JPanel pane = null;

private MoveLabel label = null;

public Test() {

super("Test");

pane = new JPanel();

label = new MoveLabel("带有滚动效果的标签")urvxuhiiQM;

pane.add(label);

this.getContentPane().add(pane);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setSize(300, 200);

this.setVisible(true);

}

public static void main(String args[]) {

new Test();

}

/**

* 带有滚动效果的Label标签,可继续拓展很多特效,例如颜色变换、速度变换等

*/

private class MoveLabel extends JLabel implements Runnable {

private static final long serialVersionUID = 1891684760189602720L;

private String text = null;

private Thread thread = null;

private int x = 0;

private int w = 0, h = 0;

public MoveLabel(String text) {

super(text);

this.text = text;

thread = new Thread(this);

thread.start();

}

public String getText() {

return text;

}

public void setText(String text) {

super.setText(text);

this.text = text;

}

protected void paintComponent(Graphics g) {

super.paintComponent(g);

g.setColor(this.getBackground());

g.fillRect(0, 0, w = this.getWidth(), h = this.getHeight());

g.setColor(this.getForeground());

g.setFont(this.getFont());

g.drawString(text, x, h - 2);

}

public void run() {

while (true) {

x -= 2;

if (x < -w) {

x = w;

}

this.repaint();

try {

Thread.sleep(50);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}

希望本文所述对大家的java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java模拟QQ桌面截图功能实现方法
下一篇:Java生成非对称型加密公钥和私钥的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~