当前位置:首页 > Java

如何用java写跑马灯

2026-03-19 07:09:44Java

实现跑马灯效果的Java代码示例

跑马灯效果可以通过多种方式实现,以下提供两种常见方法:使用Swing组件和基于控制台输出。

使用Swing实现GUI跑马灯

import javax.swing.*;
import java.awt.*;

public class MarqueeSwing extends JFrame {
    private JLabel marqueeLabel;
    private String text = "这是一条跑马灯文字... ";
    private int xPos = 0;

    public MarqueeSwing() {
        setTitle("Swing跑马灯");
        setSize(400, 100);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        marqueeLabel = new JLabel(text);
        marqueeLabel.setFont(new Font("宋体", Font.BOLD, 24));
        add(marqueeLabel, BorderLayout.CENTER);

        Timer timer = new Timer(100, e -> {
            xPos--;
            if (xPos < -marqueeLabel.getFontMetrics(marqueeLabel.getFont()).stringWidth(text)) {
                xPos = getWidth();
            }
            marqueeLabel.setLocation(xPos, 10);
        });
        timer.start();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new MarqueeSwing().setVisible(true));
    }
}

控制台文本跑马灯实现

public class ConsoleMarquee {
    public static void main(String[] args) throws InterruptedException {
        String text = "这是一条控制台跑马灯文字... ";
        int consoleWidth = 50; // 假设控制台宽度

        while (true) {
            for (int i = 0; i < text.length(); i++) {
                String output;
                if (i + consoleWidth <= text.length()) {
                    output = text.substring(i, i + consoleWidth);
                } else {
                    output = text.substring(i) + text.substring(0, consoleWidth - (text.length() - i));
                }
                System.out.print("\r" + output);
                Thread.sleep(200);
            }
        }
    }
}

实现原理说明

Swing版本利用JLabel组件和Timer定时器,通过不断改变标签位置实现水平滚动效果。xPos变量控制当前显示位置,当文字完全移出界面后重置到右侧重新开始。

控制台版本通过字符串截取和回车符(\r)实现文本滚动。循环调整显示的子字符串起始位置,模拟文字移动效果。需要注意控制台宽度设置应与实际终端匹配。

如何用java写跑马灯

两种方法都可通过调整延迟时间(Thread.sleep或Timer间隔)来控制滚动速度。Swing版本更适合图形界面应用,控制台版本则适用于命令行环境。

分享给朋友:

相关文章

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

如何用java做游戏

如何用java做游戏

使用Java开发游戏的基本方法 Java是一种跨平台的编程语言,适合开发2D游戏甚至简单的3D游戏。以下是使用Java开发游戏的主要方法和工具。 选择游戏开发框架 Java游戏开发通常依赖以下框架或…

如何用java编程

如何用java编程

Java编程基础指南 环境配置 安装Java开发工具包(JDK),推荐使用最新版本。配置环境变量,确保JAVA_HOME指向JDK安装路径,并将bin目录添加到系统PATH中。验证安装是否成功: j…

如何用vs code开发react

如何用vs code开发react

安装必要工具 确保系统已安装Node.js(建议LTS版本),用于运行JavaScript和npm/yarn包管理工具。下载并安装Visual Studio Code(VS Code)作为代码编辑器。…

react中如何用回车事件

react中如何用回车事件

在React中处理回车事件 在React中,可以通过监听键盘事件来捕获回车键(Enter key)的按下动作。以下是几种常见场景的实现方法: 监听输入框的回车事件 在输入框中按下回车时触发特…

react项目如何用js改样式

react项目如何用js改样式

使用内联样式 在React中,可以直接通过JavaScript对象定义样式,并将其传递给元素的style属性。样式属性需要使用驼峰命名法(如backgroundColor而非background-co…