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

下面是详细讲解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 validator参数验证restful自定义错误码响应方式

    下面我将详细讲解“SpringBoot validator参数验证restful自定义错误码响应方式”的完整攻略。 一、背景介绍 在SpringBoot应用中经常需要对API的请求参数进行验证,如果请求参数不符合要求,需及时响应错误信息告知请求方。SpringBoot提供了Validator机制来方便地进行参数验证,在参数验证不通过时会抛出BindingRe…

    Java 2023年6月1日
    00
  • Java如何实现数字逆序

    当我们需要将一个整数的数位逆序后输出时,我们可以使用Java语言实现该功能,具体实现方法如下: 步骤一:将整数转换为字符串 首先,我们需要将整数转换为字符串类型,以便于我们对其进行操作。Java中,可以使用toString()方法将整数转换为字符串,示例如下: int num = 12345; String strNum = Integer.toString…

    Java 2023年5月26日
    00
  • SpringBoot整合Shiro两种方式(总结)

    Spring Boot整合Shiro两种方式(总结) Shiro是一个流行的Java安全框架,可以提供身份验证、授权、加密等功能。Spring Boot可以很方便地与Shiro集成,本文将介绍两种Spring Boot整合Shiro的方式,并提供两个示例,演示如何使用Spring Boot整合Shiro。 1. 方式一:使用Shiro-Spring Boot…

    Java 2023年5月14日
    00
  • Java实现带缓冲的输入输出流

    作为一个Java程序员,我们经常需要进行输入输出操作。当我们需要读取大量的数据时,可以使用带缓冲的输入输出流进行优化。 什么是带缓冲的输入输出流 带缓冲的输入输出流可以提高IO的效率,其原理是在读写数据时,先将一定量的数据读取到缓存中,当缓存中的数据足够时,再把数据写入到文件系统或者从文件系统中读取数据。 带缓冲的输入输出流的实现 Java提供了带缓冲的输入…

    Java 2023年5月26日
    00
  • Java8常用的新特性详解

    Java8常用的新特性详解 Java8是Java语言的一个重大升级,带来了很多新特性。本文将会详细讲解Java8中常用的新特性,方便读者更好地掌握和使用Java8。 Lambda表达式 Lambda表达式是Java8中引入的一项重要特性。它可以用来替代Java中的匿名内部类,并且更加简洁明了。Lambda表达式的语法非常简单,格式如下: (parameter…

    Java 2023年5月26日
    00
  • 如何将SpringBoot项目打成 war 包并部署到Tomcat

    下面是将SpringBoot项目打成war包并部署到Tomcat的详细攻略。 1. 添加依赖 首先,我们需要在SpringBoot项目中添加Tomcat的依赖,以及修改pom.xml文件中的打包方式为war。 <!– 添加Tomcat的依赖 –> <dependency> <groupId>org.springfram…

    Java 2023年6月2日
    00
  • Spring Security 过滤器注册脉络梳理

    Spring Security 是 Spring 框架的子项目,专门用于处理认证与授权相关的安全问题。在 Spring Security 的实现过程中,过滤器是一个核心概念,所有认证和授权都是通过过滤器实现的。因此,了解 Spring Security 过滤器的注册脉络对于学习 Spring Security 至关重要。 Spring Security 过滤…

    Java 2023年6月3日
    00
  • 基于module-info.class的问题

    “基于module-info.class的问题” 在Java 9之前是不存在的。 Java SE 9中引入了模块化系统,它引入了一个新的文件模块描述符module-info.java。module-info.java包含有关模块的信息,包括模块依赖关系,公共包导入等。在模块化系统中,其他类需要使用Java模块,需要module-info.java中导入的包。…

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