gpt4 book ai didi

java - 无法获得跑马灯效果

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:02 25 4
gpt4 key购买 nike

Possible Duplicate:
Marquee effect in Java Swing

我正在尝试获得字幕效果(与 html 中的效果相同)。但我无法使用这段代码来做到这一点。如何改进这段代码以获得跑马灯效果?

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;

class tester {
JLabel l;

tester() {
JFrame fr=new JFrame();
JPanel p=new JPanel();
l=new JLabel("");
fr.add(p);
p.add(l);
fr.setVisible(true);
fr.setSize(400,400);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void MarqueeEffect() {
ActionListener ac = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
l.setText("To action alone hast thou a right and never at all to its fruits let not the fruits of action be thy motive; neither let there be in thee any attachment to inaction");
}
};
new Timer(2000,ac).start();
}

public static void main(String args[]) {
tester t=new tester();
t.MarqueeEffect();
}
}

最佳答案

您必须扩展JLabel并重写paintComponent才能带来选取框效果。如果不扩展 JLabel,仅仅设置文本是不可能实现的。您可以在自定义的 JLabel 类中执行类似的操作。

protected void paintComponent(Graphics g)
{
g.translate((int)((System.currentTimeMillis() / MARQUEE_SPEED_DIV) % (getWidth() * 2)) - getWidth(), 0);
super.paintComponent(g);
repaint(REPAINT_WITHIN_MS);
}

关于java - 无法获得跑马灯效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5747332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com