用 Java Swing 实现一个简单的 JTable

在本文中,我们将逐步学习如何使用 Java Swing 创建一个带有 JTable 的简单 GUI 应用程序。JTable 是一个在 Swing 中用于显示和管理表格数据的重要组件。

实现流程

首先,我们需要了解实现这一功能的基本流程。以下是我们需要遵循的步骤:

步骤 描述
1 创建一个 JFrame 窗口
2 准备数据模型
3 创建 JTable 并设置其模型
4 将 JTable 添加到 JFrame
5 设置窗口可见性

步骤详解

步骤 1: 创建一个 JFrame 窗口

我们将首先创建一个窗口,这是大多数 Swing 应用程序的基础。

import javax.swing.JFrame;

public class MainFrame extends JFrame {
    public MainFrame() {
        // 设置窗口标题
        setTitle("Swing JTable Example");
        
        // 设置窗口大小
        setSize(600, 400);
        
        // 设置默认关闭操作
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        // 将窗口置于屏幕中央
        setLocationRelativeTo(null);
    }
}

步骤 2: 准备数据模型

接下来,我们需要准备一些数据。这可以通过创建一个数组或使用更复杂的数据模型。这里我们使用一个简单的二维数组。

import javax.swing.table.DefaultTableModel;

public class DataModel {
    public String[][] getData() {
        // 模拟数据:姓名,年龄,城市
        return new String[][] {
            {"Alice", "25", "New York"},
            {"Bob", "30", "Los Angeles"},
            {"Charlie", "28", "Chicago"},
        };
    }

    public String[] getColumnNames() {
        // 列名
        return new String[] {"Name", "Age", "City"};
    }
}

步骤 3: 创建 JTable 并设置其模型

接下来,我们将创建一个 JTable,并将其数据模型应用于 JTable。

import javax.swing.JTable;

public class TableExample {
    private JTable table;
    
    public TableExample() {
        DataModel dataModel = new DataModel();
        String[][] data = dataModel.getData();
        String[] columnNames = dataModel.getColumnNames();
        
        // 创建表格模型
        DefaultTableModel model = new DefaultTableModel(data, columnNames);
        
        // 创建 JTable
        table = new JTable(model);
    }

    public JTable getTable() {
        return table; // 返回 JTable 以便后续使用
    }
}

步骤 4: 将 JTable 添加到 JFrame

现在我们将 JTable 添加到 JFrame 中,以便将其显示在窗口中。

import javax.swing.JScrollPane;

public class MainFrame extends JFrame {
    public MainFrame() {
        // ... (之前的代码)
        
        // 创建表格示例
        TableExample tableExample = new TableExample();
        
        // 将 JTable 添加到面板中,使用 JScrollPane 以支持滚动
        JScrollPane scrollPane = new JScrollPane(tableExample.getTable());
        add(scrollPane);
        
        // 设置可见性
        setVisible(true);
    }
}

步骤 5: 设置窗口可见性

最后,我们需要在 main 方法中启动应用程序。

public class Main {
    public static void main(String[] args) {
        // 创建 JFrame 实例
        new MainFrame();
    }
}

类图

下面是我们代码的类图展示,使用了 Mermaid 语法:

classDiagram
    class Main {
        +main(String[] args)
    }
    class MainFrame {
        +MainFrame()
        +setVisible(boolean)
    }
    class DataModel {
        +getData() String[][]
        +getColumnNames() String[]
    }
    class TableExample {
        +TableExample()
        +getTable() JTable
    }

    Main --> MainFrame
    TableExample --> DataModel
    MainFrame --> TableExample

序列图

接下来是我们应用程序的序列图,演示了对象之间的交互:

sequenceDiagram
    participant Main
    participant MainFrame
    participant TableExample
    participant DataModel

    Main->>MainFrame: 创建实例
    MainFrame->>TableExample: 创建实例
    TableExample->>DataModel: 获取数据
    DataModel-->>TableExample: 返回数据
    MainFrame->>JFrame: 添加 JTable
    MainFrame->>JFrame: 设置可见性

结尾

到此,我们已经成功实现了一个简单的 Java Swing JTable 应用程序。通过这篇文章,你不仅了解了如何创建一个带有 JTable 的 GUI 组件,还掌握了整个开发流程以及相关的代码结构。

祝你在 Java Swing 开发的道路上越走越远!若有任何疑问,欢迎提问和交流。