📜  用于移动文本的Java代码 |小程序 |线(1)

📅  最后修改于: 2023-12-03 14:56:22.024000             🧑  作者: Mango

用于移动文本的 Java 代码

本文介绍了用于移动文本的 Java 代码片段。以下示例使用了小程序和线程来展示移动文本的功能。

移动文本的 Java 代码示例
import javax.swing.*;

public class TextMover extends Thread {

    private JLabel label;
    private int startX;
    private int endX;
    private int delay;

    public TextMover(JLabel label, int startX, int endX, int delay) {
        this.label = label;
        this.startX = startX;
        this.endX = endX;
        this.delay = delay;
    }

    @Override
    public void run() {
        try {
            while (true) {
                for (int x = startX; x <= endX; x++) {
                    SwingUtilities.invokeLater(() -> {
                        label.setLocation(x, label.getY());
                    });
                    Thread.sleep(delay);
                }
                for (int x = endX; x >= startX; x--) {
                    SwingUtilities.invokeLater(() -> {
                        label.setLocation(x, label.getY());
                    });
                    Thread.sleep(delay);
                }
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Text Mover");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);

        JLabel label = new JLabel("Hello, World!");
        label.setBounds(50, 50, 100, 20);
        frame.add(label);

        TextMover mover = new TextMover(label, 50, 200, 10);
        mover.start();

        frame.setSize(300, 200);
        frame.setVisible(true);
    }
}
代码说明

此示例中的 TextMover 类继承了 Thread 类,实现了移动文本的功能。它接受一个 JLabel 对象作为参数,以及起始位置、结束位置和延迟时间。在 run 方法中,使用 SwingUtilities.invokeLater 方法更新图形界面上的文本位置,并通过 Thread.sleep 方法控制移动的延迟时间。该线程将连续不断地移动文本,直到线程被中断。

主方法创建了一个窗口,并添加了一个显示 "Hello, World!" 的标签。接下来,创建了一个 TextMover 实例,并以起始位置为 (50, 50),结束位置为 (200, 50),延迟时间为 10 毫秒来初始化。最后,设置窗口的大小并显示出来。

注意:此代码是一个简单示例,仅用于展示移动文本的基本原理。在实际应用中,可能需要根据具体需求进行修改和扩展。

希望以上内容对您有所帮助!