当前位置: 首页 > 面试题库 >

Java Swing中的字幕效果

周翰池
2023-03-14
问题内容

如何在Java Swing中实现字幕效果


问题答案:

这是使用的示例javax.swing.Timer

import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

/** @see http://stackoverflow.com/questions/3617326 */
public class MarqueeTest {

    private void display() {
        JFrame f = new JFrame("MarqueeTest");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        String s = "Tomorrow, and tomorrow, and tomorrow, "
        + "creeps in this petty pace from day to day, "
        + "to the last syllable of recorded time; ... "
        + "It is a tale told by an idiot, full of "
        + "sound and fury signifying nothing.";
        MarqueePanel mp = new MarqueePanel(s, 32);
        f.add(mp);
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
        mp.start();
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new MarqueeTest().display();
            }
        });
    }
}

/** Side-scroll n characters of s. */
class MarqueePanel extends JPanel implements ActionListener {

    private static final int RATE = 12;
    private final Timer timer = new Timer(1000 / RATE, this);
    private final JLabel label = new JLabel();
    private final String s;
    private final int n;
    private int index;

    public MarqueePanel(String s, int n) {
        if (s == null || n < 1) {
            throw new IllegalArgumentException("Null string or n < 1");
        }
        StringBuilder sb = new StringBuilder(n);
        for (int i = 0; i < n; i++) {
            sb.append(' ');
        }
        this.s = sb + s + sb;
        this.n = n;
        label.setFont(new Font("Serif", Font.ITALIC, 36));
        label.setText(sb.toString());
        this.add(label);
    }

    public void start() {
        timer.start();
    }

    public void stop() {
        timer.stop();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        index++;
        if (index > s.length() - n) {
            index = 0;
        }
        label.setText(s.substring(index, index + n));
    }
}


 类似资料:
  • 问题内容: 如何在Python的Label中创建字幕效果?我在列表中有一些新闻标题,我希望它们在窗口底部滚动。 问题答案: 您可以创建一个自定义窗口小部件,但是要避免实现许多方法的任务,可以利用该类,如下所示: 在以下链接中可以找到以下示例。 输出:

  • 问题内容: 我正在使用CSS3动画创建字幕效果。 现在,我可以获得基本的字幕效果,但是该代码对于此演示来说太具体了。 有没有一种方法可以避免使用诸如的特定值,以便它可以适应任何长度的文本? 这是一个类似的演示:http : //jsfiddle.net/jonathansampson/XxUXD/使用但仍具有特定值。 问题答案: 只需稍加更改标记,这就是我的方法(我刚刚在段落中插入了一个内部):

  • 我已经有了一个非常基本的JavaSwing程序,但我意识到我可以使用一个简单的用户名/密码登录屏幕来限制只有具有用户名和密码的人才能访问它。 无论如何,我可以在main方法的开头插入一些代码,以防止在出现的屏幕上输入用户名和密码之前执行?

  • 本文向大家介绍python实现黑客字幕雨效果,包括了python实现黑客字幕雨效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现字幕雨效果的具体代码,供大家参考,具体内容如下 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我很好奇,在放置组件时,如何使用miglaway在网格上均匀分布组件: 例如,如果我在一个按钮组中放置四个JRadioButton以跨越3行2列(2,3),然后放置三个JButton,则分布的权重是不相等的,我最终会得到以下结果: 如图所示,A和B的大小相同,C保留剩余的空间:我希望A、B、C在垂直方向上等于三分之一。 如果这在GridBagLayout中是可能的,我也可以利用它,但是我在任何一种

  • 本文向大家介绍iOS实现滚动字幕的动画特效,包括了iOS实现滚动字幕的动画特效的使用技巧和注意事项,需要的朋友参考一下 效果图 开始上代码 滚动字幕的原理是用timer定时器间隔一定的时间来驱动scrollView上的内容偏移,来实现滚动的效果,原理比较简单,关键是有些细节需要处理好,实现流畅效果的同时要考虑到性能优化 这里是.h文件的接口方法及属性,可适应大部分自定义场景 实现滚动字幕的思路和无