JLabel + setText + Timer.
codice:
import java.awt.event.*;
import javax.swing.*;

public class SimpleClass extends JFrame implements ActionListener {
    private JLabel label;
    private JPanel pannello;
    private Timer timer;
    
    private static String stringa = "Sono una stringa che scorre. ";
    private static int numChar = 10;
    private int indice = 0;
    
    public SimpleClass() {
        label = new JLabel(getText());
        pannello = new JPanel();
        pannello.add(label);
        this.setContentPane(pannello);
        this.setSize(200,200);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        timer = new Timer(200, this);
        timer.start();
    }
    
    public void actionPerformed(ActionEvent e) {
        label.setText(getText());
    }
    
    public String getText() {
        int fine = indice + numChar;
        String tmp;
        if(fine<stringa.length()) {
            tmp = stringa.substring(indice, fine);
        } else {
            tmp = stringa.substring(indice);
            tmp = tmp + stringa.substring(0, fine%stringa.length());
        }
        indice = (indice+1)%(stringa.length());
        System.out.println(indice+" "+stringa.length());
        return tmp;
    }
    
    public static void main(String[] args) {
        new SimpleClass();
    }
}