跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Java Swing 滚动面板 JScrollPane 使用示例

Java Swing 中 JScrollPane 用于处理超出窗口范围的组件内容。本例展示了如何将 JTextArea 嵌入滚动面板,配置垂直与水平滚动条策略。通过 setLineWrap 优化文本换行,结合 ScrollPaneConstants 控制滚动条显示行为,确保界面在不同内容量下均具备良好的浏览体验。

DebugKing发布于 2020/7/19更新于 2026/10/1786 浏览
Java Swing 滚动面板 JScrollPane 使用示例

Java Swing 滚动面板 JScrollPane 实战

在 Swing 桌面应用开发里,遇到长文本或大表格时,直接塞进窗口肯定不行。这时候 JScrollPane 就是标准解决方案。它能把任意组件包装起来,自动处理超出可视区域的部分。

下面这段代码演示了如何结合 JTextArea 创建一个带滚动功能的文本显示区。

public static void main(String[] args) {
    JFrame jf = new JFrame();
    jf.setSize(400, 300);
    jf.setLocationRelativeTo(null);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // 创建文本区域
    JTextArea textArea = new JTextArea();
    textArea.setLineWrap(true); // 开启自动换行
    textArea.setFont(new Font("楷体", Font.PLAIN, 22));
    textArea.setForeground(Color.blue); // 设置文字颜色

    // 创建滚动面板,指定显示组件
    JScrollPane scrollPane = new JScrollPane(textArea,
            ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, // 垂直滚动条始终显示
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED // 水平滚动条按需显示
    );

    jf.setContentPane(scrollPane);
    jf.setVisible(true);
}

这里有几个细节值得注意。首先是 JTextArea 的配置,setLineWrap(true) 能让长单词自动折行,避免水平滚动条频繁出现。字体和颜色的设置是为了提升可读性。

关键在于 JScrollPane 的构造函数。第一个参数是视口视图(也就是我们要滚动的组件),后面两个参数分别控制垂直和水平滚动条的策略。比如这里垂直方向设为 ALWAYS,意味着即使内容不多也会预留滚动条空间;而水平方向设为 AS_NEEDED,只有在内容宽度超过容器时才会出现滚动条。

最后通过 jf.setContentPane() 将滚动面板挂载到窗口上,调用 setVisible(true) 即可运行。实际使用时,往 textArea 里填充大量文本,就能直观看到滚动效果了。

目录

  1. Java Swing 滚动面板 JScrollPane 实战

更多推荐文章

查看全部
  • GitHub Desktop 中文汉化方法:界面本地化配置指南
  • npm ERR! code 128 未知 Git 错误处理方案
  • 基于开源技术栈搭建地理信息 SaaS 化开发生态方案
  • 本地 LLM 模型与 Ollama、Python 集成实战
  • 宇树机器人 SDK2 开发指南:从环境搭建到 Demo 测试
  • FreeBSD 下使用 BVCP 管理 bhyve 虚拟机(上)
  • C++ 继承机制详解:从概念到多继承模型
  • Android 通过代码模拟媒体按键控制音乐播放器
  • RunningHub:基于开源生态的图形音视频 AIGC 平台解析
  • 前端调用 AI 接口全流程实战:从配置到流式响应
  • AI 产品经理必备的核心能力与知识体系
  • 架构演进实战:从单机到分布式,Redis 的核心价值
  • 论文笔记 DiT:基于 Transformer 的可扩展扩散模型
  • PyCharm 集成 GitHub Copilot 安装与配置指南
  • Mac mini 打造家庭数据中心:集成 OpenClaw 与私有云导航服务
  • Sam Altman:超级人工智能将在几年后诞生
  • 全排列与回溯算法详解:LeetCode 经典题目解析
  • FPGA 实现 HDMI 输出:接口原理、时序与实战案例
  • 前端微前端架构:大型项目是解药还是新坑?
  • 2025 AI Agent 技术栈全解析:从 LLM 到自主智能体

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online