Как создать бегущий текст с помощью jlabel?
Скажем так, у меня есть джабель с текстом. И я хочу, чтобы текст менялся каждую секунду влево так же, как текст на рекламном щите.
Является ли это возможным? если да, то как?
1 ответ
Решение
Вы должны использовать 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
Держатель, чтобы иметь возможность использовать его внутри класса или лямбда.