2016 - 2024

感恩一路有你

Swing 表格的使用

浏览量:3507 时间:2024-02-03 16:19:10 作者:采采

表格是程序中一种非常常见的组件,Swing中提供了用于创建表格的JTable类。JTable可以以二维表格的形式显示数据,并且允许用户对表格中的数据进行编辑。

JTable 构造方法

在使用JTable之前,我们首先需要了解几个JTable的构造方法:

  1. JTable(int numRows, int numColumns):这个构造方法使用DefaultTableModel来创建一个具有numRows行和numColumns列个空单元格的JTable。
  2. JTable(Object[][] rowData, Object[] columnNames):这个构造方法使用一个二维数组rowData来创建一个JTable,其中rowData中的值将会被显示在表格中,而columnNames则是表格的列名称。

通过这两个构造方法,我们可以根据数据的不同形式来创建适应的JTable对象。

JTable 的简单使用

下面我们来看一个简单的示例,演示如何使用JTable来显示数据:

// 创建数据
Object[][] data  {
    {"John", 25, "Male"},
    {"Emily", 28, "Female"},
    {"Michael", 30, "Male"}
};
// 创建表头
Object[] columnNames  {"Name", "Age", "Gender"};
// 创建 JTable 对象
JTable table  new JTable(data, columnNames);
// 创建滚动面板,用于显示表格
JScrollPane scrollPane  new JScrollPane(table);
// 将滚动面板添加到容器中
().add(scrollPane);

在上述示例中,我们首先创建了一个二维数组data,其中包含了三行数据。然后,通过定义一个列名称的字符串数组columnNames,我们指定了表格的列标题。

接着,我们使用这两个数组作为参数来创建JTable对象table。最后,我们将table放置在一个JScrollPane中,并将它添加到容器中,以便能够滚动显示整个表格。

通过这样简单的几步,我们就可以创建并显示一个基本的JTable。

JTable 数据编辑

除了显示数据外,JTable还允许用户对表格中的数据进行编辑。例如,我们可以添加按钮或其他组件来实现编辑功能。

下面是一个示例,演示如何在JTable中添加一个按钮,并实现点击按钮时修改表格数据的功能:

// 创建数据模型
DefaultTableModel model  new DefaultTableModel(data, columnNames) {
    // 列类型
    Class[] columnTypes  new Class[] {
        , , 
    };
    // 指定列类型
    public Class getColumnClass(int columnIndex) {
        return columnTypes[columnIndex];
    }
    // 判断单元格是否可编辑
    public boolean isCellEditable(int row, int column) {
        return true;
    }
};
// 创建 JTable 对象
JTable table  new JTable(model);
// 创建按钮列
TableButtonColumn buttonColumn  new TableButtonColumn(table, editButtonAction, 3);
// 将表格添加到容器中
().add(new JScrollPane(table));

在上述示例中,我们首先创建了一个DefaultTableModel对象model,该对象继承自AbstractTableModel,用于存储表格的数据。通过重写getColumnClass和isCellEditable方法,我们指定了表格中每列的类型以及可编辑的单元格。

接着,我们使用这个model对象来创建JTable实例table。然后,我们使用TableButtonColumn类创建了一个按钮列,并将其添加到表格中。点击按钮时,会触发editButtonAction,从而修改表格中的数据。

通过以上步骤,我们就可以实现在JTable中对数据进行编辑的功能。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。