如何用jlabel创建运行文本?

时间:2017-01-17 13:19:43

标签: java text netbeans jlabel graphical-programming

我们只是说我有一个带有文字的jlabel。而且我希望文本每隔一秒左右不断更改,就像在广告牌上运行文本一样。

有可能吗?如果有,怎么样?

1 个答案:

答案 0 :(得分:0)

您应该使用javax.swing.Timer来安排JLabel次更新。请参阅下面的简化代码段:

JFrame frame = new JFrame("Test");
frame.setSize(300, 300);
JLabel label = new JLabel("This is text!!!");
frame.add(label);
frame.setVisible(true);

final int labelWidth = 300;
final AtomicInteger labelPadding = new AtomicInteger();
Timer timer = new Timer(20, new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        label.setBorder(new EmptyBorder(0, labelPadding.getAndIncrement() % labelWidth, 0, 0));
    }
});
timer.start();

请注意,AtomicInteger不是必需的,但您需要一些final持有者才能在内部类或lambda中使用它。