用 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 开发的道路上越走越远!若有任何疑问,欢迎提问和交流。