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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 本文介绍了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中展示和处理数据的重要组件。理解它们的用法,注意常见的设计模式和错误,可以帮助你创建出功能丰富的用户界面。在实践中,结合不同的布局管理器和组件,你可以构建出各种复杂的界面。

目录
相关文章
|
1月前
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
30天前
|
存储 搜索推荐 Java
探索安卓开发中的自定义视图:打造个性化UI组件Java中的异常处理:从基础到高级
【8月更文挑战第29天】在安卓应用的海洋中,一个独特的用户界面(UI)能让应用脱颖而出。自定义视图是实现这一目标的强大工具。本文将通过一个简单的自定义计数器视图示例,展示如何从零开始创建一个具有独特风格和功能的安卓UI组件,并讨论在此过程中涉及的设计原则、性能优化和兼容性问题。准备好让你的应用与众不同了吗?让我们开始吧!
|
1月前
|
安全 Java API
|
1月前
|
存储 算法 前端开发
JVM架构与主要组件:了解Java程序的运行环境
JVM的架构设计非常精妙,它确保了Java程序的跨平台性和高效执行。通过了解JVM的各个组件,我们可以更好地理解Java程序的运行机制,这对于编写高效且稳定的Java应用程序至关重要。
39 3
|
1月前
|
SQL Java 数据库连接
【Java】Java Swing 图书管借阅管理系统(源码+论文)【独一无二】
【Java】Java Swing 图书管借阅管理系统(源码+论文)【独一无二】
|
1月前
|
存储 数据可视化 Java
【Java】Java swing 民宿管理系统 GUI(源码+可视化界面)【独一无二】
【Java】Java swing 民宿管理系统 GUI(源码+可视化界面)【独一无二】
|
2月前
|
安全 前端开发 Java
Java技术栈中的核心组件:Spring框架
Java作为一门成熟的编程语言,其生态系统拥有众多强大的组件和框架,其中Spring框架无疑是Java技术栈中最闪耀的明星之一。Spring框架为Java开发者提供了一套全面的编程和配置模型,极大地简化了企业级应用的开发流程。
39 1
|
3天前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理
|
8天前
|
缓存 Java 应用服务中间件
Java虚拟线程探究与性能解析
本文主要介绍了阿里云在Java-虚拟-线程任务中的新进展和技术细节。