JAVA图形界面(GUI)之表格的示例代码

yizhihongxing

下面是详细讲解Java图形界面(GUI)之表格的示例代码的完整攻略:

1. 准备工作

在讲解示例代码之前,我们需要先进行一些准备工作。具体包括以下几步:

  1. 了解Java图形界面(GUI)相关的基础知识,包括Swing组件、布局管理器等等。
  2. 安装Java开发环境(JDK),这里以JDK 1.8为例。
  3. 确定开发工具。Java开发工具种类众多,推荐使用Eclipse或IntelliJ IDEA进行开发。

2. 示例代码

下面是一个简单的表格示例代码。该程序包括一个表格和一个按钮,当用户点击按钮时,会向表格中添加一行数据。

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

public class TableExample extends JFrame implements ActionListener {

    private JTable table;
    private DefaultTableModel model;
    private JButton addButton;

    public TableExample() {
        initGUI();
    }

    private void initGUI() {
        this.setTitle("Table Example");

        // 创建表格
        String[] header = {"Name", "Age", "Gender"};
        model = new DefaultTableModel(header, 0);
        table = new JTable(model);

        // 创建按钮
        addButton = new JButton("Add");
        addButton.addActionListener(this);

        // 添加表格和按钮到窗口中
        Container contentPane = this.getContentPane();
        contentPane.setLayout(new BorderLayout());
        contentPane.add(new JScrollPane(table), BorderLayout.CENTER);
        contentPane.add(addButton, BorderLayout.SOUTH);

        this.setSize(400, 300);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // 向表格中添加一行数据
        model.addRow(new Object[]{"Tom", 25, "Male"});
    }

    public static void main(String[] args) {
        new TableExample();
    }
}

上述代码中,我们使用了Swing组件中的JTable和DefaultTableModel,分别用于显示表格和管理表格数据。在initGUI()方法中,我们创建了一个表格和一个按钮,并将它们添加到窗口中。当用户点击按钮时,程序会调用actionPerformed()方法,向表格中添加一行数据。

3. 示例说明

下面我们进行两个示例说明,以便更好地理解表格的使用。

示例1:从文件读取数据并在表格中显示

假设我们有一个数据文件employee.txt,文件中的每行都包含一个员工的信息,包括姓名、年龄、性别和部门,用逗号分隔。我们希望能够读取该文件的内容,并在表格中显示出来。具体实现,可以参考以下示例代码:

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileExample extends JFrame {

    private JTable table;
    private DefaultTableModel model;

    public ReadFileExample() {
        initGUI();
        loadData();
    }

    private void initGUI() {
        this.setTitle("Read File Example");

        String[] header = {"Name", "Age", "Gender", "Department"};
        model = new DefaultTableModel(header, 0);
        table = new JTable(model);

        Container contentPane = this.getContentPane();
        contentPane.setLayout(new BorderLayout());
        contentPane.add(new JScrollPane(table), BorderLayout.CENTER);

        this.setSize(500, 400);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }

    private void loadData() {
        try {
            BufferedReader reader = new BufferedReader(new FileReader("employee.txt"));
            String line;
            while ((line = reader.readLine()) != null) {
                String[] data = line.split(",");
                model.addRow(data);
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new ReadFileExample();
    }
}

在上述代码中,我们在initGUI()方法中创建了一个表格,并设置了表头(即每一列的标题)。在loadData()方法中,我们使用BufferedReader读取数据文件中的内容,并将每行数据以逗号为分隔符进行拆分,然后将拆分后的数组作为参数传入model.addRow()方法中,以便向表格中添加一行数据。最后,我们在main()方法中创建了一个ReadFileExample对象,以便运行该程序。

示例2:使用表格编辑器进行数据更新

假设我们已经在表格中显示了一些数据,现在我们希望能够通过表格的编辑器,对表格中的数据进行修改。具体实现,可以参考以下示例代码:

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

public class EditTableExample extends JFrame implements ActionListener {

    private JTable table;
    private DefaultTableModel model;
    private JButton saveButton;

    public EditTableExample() {
        initGUI();
    }

    private void initGUI() {
        this.setTitle("Edit Table Example");

        String[] header = {"Name", "Age", "Gender", "Department"};
        model = new DefaultTableModel(header, 0);
        table = new JTable(model);

        saveButton = new JButton("Save");
        saveButton.addActionListener(this);

        Container contentPane = this.getContentPane();
        contentPane.setLayout(new BorderLayout());
        contentPane.add(new JScrollPane(table), BorderLayout.CENTER);
        contentPane.add(saveButton, BorderLayout.SOUTH);

        this.setSize(500, 400);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == saveButton) {
            int rowCount = model.getRowCount();
            int colCount = model.getColumnCount();
            for (int i = 0; i < rowCount; i++) {
                for (int j = 0; j < colCount; j++) {
                    Object value = model.getValueAt(i, j);
                    System.out.print(value + "\t");
                }
                System.out.println();
            }
        }
    }

    public static void main(String[] args) {
        new EditTableExample();
    }
}

在上述代码中,我们在initGUI()方法中创建了一个表格,并设置了表头。在actionPerformed()方法中,我们判断了用户是否点击了“Save”按钮。如果是的话,我们通过model.getRowCount()和model.getColumnCount()方法获取表格的行数和列数,并通过两层循环遍历表格中的所有数据。对于每一个单元格(即一行一列的交叉点),我们使用model.getValueAt()方法获取单元格中原有的数据,并输出到控制台中。

以上就是两个示例的说明。其中,示例1演示了如何从文件中读取数据,并在表格中进行展示;示例2演示了如何通过表格编辑器修改表格中的数据。这两个示例均体现了表格的重要性和灵活性。由此可见,在Java图形界面(GUI)中,表格是一个非常重要的组件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA图形界面(GUI)之表格的示例代码 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • SpringBoot分离打Jar包的两种配置方式

    Spring Boot 是一种快速创建独立的、基于Spring的应用程序的方式,具有代码少、配置简单、开发效率高、开箱即用等特点。在实际应用中,我们通常需要将 Spring Boot 应用程序打包为一个可执行的 jar 包,以方便进行部署和运行。而分离打 jar 包则是将引用的依赖库全部打包进来的方式,使得打包后的 jar 包可以直接运行,不需要依赖外部的类…

    Java 2023年5月19日
    00
  • hibernate增删改查操作代码

    下面我将详细讲解 Hibernate 的增删改查操作代码的完整攻略。 首先,使用 Hibernate 进行增删改查操作需要遵循以下步骤: 配置 Hibernate 配置文件 hibernate.cfg.xml 创建 Hibernate 工厂对象 SessionFactory 创建 Session 对象 开启事务 执行相应的增删改查操作 提交事务 关闭 Ses…

    Java 2023年5月19日
    00
  • MyBatis拦截器原理探究

    我会为您详细讲解”Mybatis拦截器原理探究”的完整攻略,希望能帮到您。 一、前言 当我们使用 Mybatis 进行开发时,可能会有这样一种需求:在执行 SQL 之前、之后对 SQL 语句或参数进行处理,比如动态修改 SQL 语句,打印执行 SQL 的日志、记录执行时间等等,这时,Mybatis 的拦截器就派上用场了。 二、Mybatis 的拦截器 Myb…

    Java 2023年5月20日
    00
  • SpringBoot项目中的多数据源支持的方法

    为在Spring Boot项目中实现多数据源支持,有几种方法可供选择。以下是几种最常用的方法。 方法一:使用Spring Boot提供的自动配置 Spring Boot自动配置对于多个数据源配置非常方便。可以使用@ConfigurationProperties注释来定义不同的数据源。以下是实现多个数据源的示例: # application.yml sprin…

    Java 2023年5月20日
    00
  • IDEA教程创建SpringBoot前后端分离项目示例图解

    下面我来详细讲解“IDEA教程创建SpringBoot前后端分离项目示例图解”的完整攻略。 简介 首先,让我们来了解一下前后端分离项目的概念。前后端分离是指将前端和后端代码分别开发,并通过API进行数据交互的一种开发方式。它可以有效提高开发效率和代码可维护性,并且使得前后端团队的分工更加明确。 在本教程中,我们将使用IntelliJ IDEA来创建一个前后端…

    Java 2023年5月20日
    00
  • 网站更换域名对网站带来的影响及补救措施完美小结

    一、影响 网站的SEO排名受到影响。更换域名将导致搜索引擎重新评估网站的可信度和相关性,从而影响网站的排名。 存在大量的错误链接。原有的外部链接和书签将失效,用户访问页面将会出现404错误。 用户访问量下降。由于网站更换域名后,用户需要重新了解并适应新域名,可能会降低用户的访问量。 二、补救措施 建立301重定向。使用301重定向将所有旧URL指向新的URL…

    Java 2023年6月15日
    00
  • Tomcat多实例部署及配置原理

    下面是关于Tomcat多实例部署及配置原理的完整攻略: 一、Tomcat多实例的概念和原理 Tomcat多实例指的是在同一台服务器上同时运行多个独立的Tomcat服务实例,每个实例拥有独立的端口、日志、访问控制等配置。这样可以更好地隔离不同的应用程序和项目,避免互相干扰。 Tomcat多实例部署的原理是通过配置不同的Catalina Home和Catalin…

    Java 2023年6月2日
    00
  • Bootstrap和Java分页实例第二篇

    下面是对于“Bootstrap和Java分页实例第二篇”的详细讲解攻略。 什么是Bootstrap和Java分页实例第二篇 Bootstrap和Java分页实例第二篇是一篇关于如何使用Bootstrap和Java进行分页功能实现的技术文章。文章的主要内容涵盖了Bootstrap基础、Java分页实现、Ajax分页实现、Bootstrap分页器等方面,旨在帮助…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部