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

Java Swing 文本域 JTextArea 基础交互示例

综述由AI生成Java Swing 文本域基础交互示例展示了如何使用 JTextArea 结合 JScrollPane 实现多行文本编辑功能。通过 BorderLayout 布局管理界面元素,配合 Action 监听器处理按钮点击事件,实现了从单行输入框向多行文本域追加内容的逻辑。代码演示了设置自动换行、滚动条及获取文本内容的关键 API,适合初学者理解 Swing 组件的基本用法与事件响应机制。

星辰大海发布于 2020/7/19更新于 2026/6/816 浏览
Java Swing 文本域 JTextArea 基础交互示例

Swing 作为 Java 桌面开发的经典框架,其组件体系对于理解事件驱动模型依然很有价值。这里展示了一个简单的交互场景:通过单行文本框输入内容,点击按钮追加到多行文本域中,同时支持直接读取多行文本域的内容。

在布局上,我们使用了 BorderLayout 将界面分为上下两部分。上方放置带滚动条的多行文本区域,下方则是输入控件和按钮组合。这种结构清晰且易于扩展。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class SwingTest {
    public static void main(String[] args) {
        // 创建主窗口
        JFrame frame = new JFrame("Swing 文本域测试");
        frame.setSize(400, 400);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 主面板,使用边界布局
        JPanel mainPanel = new JPanel(new BorderLayout());

        // 创建多行文本框并配置属性
        JTextArea textArea = new JTextArea(8, 12);
        textArea.setLineWrap(true); // 启用自动换行
        textArea.setPreferredSize(new Dimension(300, 200));

        
        mainPanel.add( (textArea), BorderLayout.NORTH);

        
            ();
        printButton.addActionListener(e -> System.out.println(textArea.getText()));
        mainPanel.add(printButton, BorderLayout.SOUTH);

        
            ();
            ();
        textField.setPreferredSize( (, ));
        inputPanel.add(textField);

            ();
        sendButton.addActionListener(e -> {
            System.out.println( + textField.getText());
            textArea.append(textField.getText() + );
        });
        inputPanel.add(sendButton);

        mainPanel.add(inputPanel, BorderLayout.CENTER);

        frame.setContentPane(mainPanel);
        frame.setVisible();
    }
}
// 添加滚动条,防止长文本溢出
new
JScrollPane
// 底部操作区
JButton
printButton
=
new
JButton
"测试取得内容"
// 输入区域面板
JPanel
inputPanel
=
new
JPanel
JTextField
textField
=
new
JTextField
new
Dimension
80
35
JButton
sendButton
=
new
JButton
"添加到多行文本框中"
"输入内容:"
"\n"
true

注意几个关键点:setLineWrap(true) 能让文本在宽度不足时自动折行,避免横向滚动条;JScrollPane 是包裹 JTextArea 的标准做法,确保内容过多时可滚动查看;事件监听器中使用 Lambda 表达式简化了 ActionListener 的写法(Java 8+)。运行后,你可以在下方的输入框打字,点击'添加到多行文本框中'看到内容追加到上方区域,点击'测试取得内容'则会在控制台打印当前所有文本。

  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 数据结构:堆排序原理与实现
  • Python 在 Coze 智能体中的插件开发与实战应用
  • Kerberos 认证协议详解与操作流程
  • Ollama v0.17.0 更新:OpenClaw 自动化集成、Web 搜索与 Tokenizer 性能优化
  • 基于 FPGA 的 CLAHE 自适应限制对比度直方图均衡算法 Verilog 实现
  • 基于 Windows 环境搭建 OpenClaw 部署指南
  • Node.js 调试核心要点全解析
  • 2026 年 Python+AI 学习路线:从零基础到实战
  • C++ 模板进阶:非类型参数、特化与分离编译
  • 使用 TRAE CN 与 MasterGo MCP 将设计稿转化为前端代码
  • AI 时代的内容创作:从代码到认知的范式转移
  • 大模型时代的爬虫新范式:基于 Prompt 的数据提取实践
  • 基于 Leaflet 与百度天气接口的空气质量 WebGIS 可视化实战
  • JavaScript 原子读和写操作详解
  • 金仓数据库 ksql 本地库创建与管理指南
  • 直流无刷电机 FOC 矢量控制算法详解
  • AI 提示词入门:6 种让回答更精准的提问技巧
  • Qwen3-VL与ComfyUI联动实现AI绘画工作流自动标注
  • 本科文献综述全流程指南:基于 AI 工具的选题到成稿写作方法
  • PyQt 面向沥青路面裂缝病害识别的 YOLOv8n 算法改进研究

相关免费在线工具

  • 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