Java一分钟之-Swing组件:JTable, JTree, JTextArea

简介: 本文介绍了Java Swing的三个关键组件:`JTable`、`JTree`和`JTextArea`,用于数据展示和用户输入。`JTable`展示二维数据,如表格;`JTree`展示层次结构数据,如文件系统;`JTextArea`则用于多行文本输入和显示。每个组件都提供了示例代码,并列出常见问题及避免方法,如数据源未设置、滚动面板缺失等。理解并掌握这些组件,能帮助开发者创建高效用户界面。

Java Swing 提供了丰富的组件库,其中JTableJTreeJTextArea用于展示数据和用户输入。本文将深入浅出地介绍这些组件,常见问题,易错点以及如何避免,同时提供代码示例。
image.png

1. JTable

JTable用于展示二维数据,如表格形式的数据。它可以从数组、列表或模型中获取数据。

示例代码

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class JTableExample {
   
   
    public static void main(String[] args) {
   
   
        JFrame frame = new JFrame("JTable Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        String[] columnNames = {
   
   "Name", "Age"};
        Object[][] data = {
   
   {
   
   "Alice", 25}, {
   
   "Bob", 30}, {
   
   "Charlie", 35}};
        DefaultTableModel model = new DefaultTableModel(data, columnNames);
        JTable table = new JTable(model);

        JScrollPane scrollPane = new JScrollPane(table);
        frame.getContentPane().add(scrollPane);

        frame.setVisible(true);
    }
}

常见问题及避免方法

  • 问题1:数据源未设置。如果没有设置数据源,JTable将为空。

    • 避免方法:使用DefaultTableModel或自定义模型设置数据源。
  • 问题2:滚动面板缺失。大表格可能超出窗口大小,需要添加JScrollPane

    • 避免方法:使用JScrollPane包裹JTable

2. JTree

JTree用于展示层次结构的数据,如文件系统或组织结构。

示例代码

import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

public class JTreeExample {
   
   
    public static void main(String[] args) {
   
   
        JFrame frame = new JFrame("JTree Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
        DefaultMutableTreeNode child1 = new DefaultMutableTreeNode("Child 1");
        DefaultMutableTreeNode child2 = new DefaultMutableTreeNode("Child 2");
        root.add(child1);
        root.add(child2);
        DefaultTreeModel model = new DefaultTreeModel(root);
        JTree tree = new JTree(model);

        frame.getContentPane().add(tree);

        frame.setVisible(true);
    }
}

常见问题及避免方法

  • 问题1:节点结构未建立。如果未添加子节点,JTree将为空。

    • 避免方法:使用DefaultMutableTreeNode创建树结构,并设置到DefaultTreeModel
  • 问题2:未设置模型JTree需要TreeModel来展示数据。

    • 避免方法:创建并设置DefaultTreeModel

3. JTextArea

JTextArea用于多行文本输入和显示。

示例代码

import javax.swing.*;

public class JTextAreaExample {
   
   
    public static void main(String[] args) {
   
   
        JFrame frame = new JFrame("JTextArea Example");
        frame.setSize(400, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JTextArea textArea = new JTextArea("Enter your text here...");
        JScrollPane scrollPane = new JScrollPane(textArea);

        frame.getContentPane().add(scrollPane);

        frame.setVisible(true);
    }
}

常见问题及避免方法

  • 问题1:未设置滚动面板。如果文本过长,JTextArea可能超出窗口大小。

    • 避免方法:使用JScrollPane包裹JTextArea
  • 问题2:未初始化文本。默认情况下,JTextArea为空。

    • 避免方法:在创建JTextArea时设置初始文本。

结语

JTableJTreeJTextArea是Swing中展示和处理数据的重要组件。理解它们的用法,注意常见的设计模式和错误,可以帮助你创建出功能丰富的用户界面。在实践中,结合不同的布局管理器和组件,你可以构建出各种复杂的界面。

目录
相关文章
|
9月前
|
Java 数据安全/隐私保护 索引
(Java)Java里JFrame窗体的基本操作(组件篇-3)
回顾 说过了下拉框和下拉列表,本篇内容将了解滚动面板和各类输入框 什么是组件? 如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入; 另:在使用组件前,请先将窗体中的内容类给实例化出来进行操作,代码如下: Container c = getContentPane(); JScollPane JScollPane类,说的就是滚动面板。它不同于其他组件,它是一个容器,
194 2
|
9月前
|
Java 索引 容器
(Java)Java里JFrame窗体的基本操作(组件篇-2)
回顾 这算是JFrame窗体基本操作的组件第二篇了,上一篇说过了单选框,复选框,按钮。 在这一篇中,我会说明下拉框和列表框 什么是组件? 自行百度:java中JFrame窗体里的组件是什么? 名字都给你想好了 ( :I ) JComBox下拉框 JComBox类,就是下拉框,实例化出来后,要填写泛型<>,添加是什么数据类型的内容,泛型中就写上该数据类型; JComboBox<?> combox = new JComboBox<>(); 以下实例化下拉框的时候我泛型写的全
236 1
|
9月前
|
Java 容器
(Java)Java里JFrame窗体的基础操作(组件-1)
如果不熟悉组件,可以将组件看作是某个Form表单中的表单元素,当然这只是在不熟悉组件的前提下。如果深入了解了组件,那么它有着非常多的组件,这些组件可以完善JFrame窗口的布局,以及一些功能; 本篇内容中所有的组件所用到的类全都来自于javax.swing这个包中,记得引入
194 1
|
11月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
505 7
|
Java 数据库连接 数据库
Java 组件详细使用方法与封装实战指南
本指南详解Java核心组件使用与封装技巧,涵盖跨平台开发、面向对象编程、多线程、数据库操作等关键内容,并提供工具类、连接池、异常及响应结果的封装方法。结合Spring框架、MyBatis、Spring Boot等主流技术,助你掌握高质量Java组件设计与开发实践。
331 2
|
存储 IDE Java
漂亮不是梦!Java Swing美化攻略
Java Swing 是一个为 Java 设计的 GUI 工具包,提供文本框、按钮等组件。尽管其外观可定制,通过 Look and Feel(LAF)机制改变应用风格,如 Darcula 和 FlatLaf,但现已淡出主流视野,主要应用于 IDE 领域,如 IntelliJ IDEA 和 Eclipse。相比其他 GUI 框架,Swing 的发展前景有限。
881 1
|
存储 消息中间件 安全
JUC组件实战:实现RRPC(Java与硬件通过MQTT的同步通信)
【10月更文挑战第9天】本文介绍了如何利用JUC组件实现Java服务与硬件通过MQTT的同步通信(RRPC)。通过模拟MQTT通信流程,使用`LinkedBlockingQueue`作为消息队列,详细讲解了消息发送、接收及响应的同步处理机制,包括任务超时处理和内存泄漏的预防措施。文中还提供了具体的类设计和方法实现,帮助理解同步通信的内部工作原理。
JUC组件实战:实现RRPC(Java与硬件通过MQTT的同步通信)
|
Java 数据安全/隐私保护 容器
java当中组件和窗口的相容问题(里面包含了这些方法的作用)
Java窗口和组件的布局指南,教你如何打造一个既美观又实用的GUI界面。
220 0
|
存储 搜索推荐 Java
探索安卓开发中的自定义视图:打造个性化UI组件Java中的异常处理:从基础到高级
【8月更文挑战第29天】在安卓应用的海洋中,一个独特的用户界面(UI)能让应用脱颖而出。自定义视图是实现这一目标的强大工具。本文将通过一个简单的自定义计数器视图示例,展示如何从零开始创建一个具有独特风格和功能的安卓UI组件,并讨论在此过程中涉及的设计原则、性能优化和兼容性问题。准备好让你的应用与众不同了吗?让我们开始吧!

热门文章

最新文章