Swing 表格的使用
表格是程序中一種非常常見的組件,Swing中提供了用于創(chuàng)建表格的JTable類。JTable可以以二維表格的形式顯示數(shù)據(jù),并且允許用戶對表格中的數(shù)據(jù)進行編輯。 JTable 構(gòu)造方法 在使用JTa
表格是程序中一種非常常見的組件,Swing中提供了用于創(chuàng)建表格的JTable類。JTable可以以二維表格的形式顯示數(shù)據(jù),并且允許用戶對表格中的數(shù)據(jù)進行編輯。
JTable 構(gòu)造方法
在使用JTable之前,我們首先需要了解幾個JTable的構(gòu)造方法:
- JTable(int numRows, int numColumns):這個構(gòu)造方法使用DefaultTableModel來創(chuàng)建一個具有numRows行和numColumns列個空單元格的JTable。
- JTable(Object[][] rowData, Object[] columnNames):這個構(gòu)造方法使用一個二維數(shù)組rowData來創(chuàng)建一個JTable,其中rowData中的值將會被顯示在表格中,而columnNames則是表格的列名稱。
通過這兩個構(gòu)造方法,我們可以根據(jù)數(shù)據(jù)的不同形式來創(chuàng)建適應(yīng)的JTable對象。
JTable 的簡單使用
下面我們來看一個簡單的示例,演示如何使用JTable來顯示數(shù)據(jù):
// 創(chuàng)建數(shù)據(jù)
Object[][] data {
{"John", 25, "Male"},
{"Emily", 28, "Female"},
{"Michael", 30, "Male"}
};
// 創(chuàng)建表頭
Object[] columnNames {"Name", "Age", "Gender"};
// 創(chuàng)建 JTable 對象
JTable table new JTable(data, columnNames);
// 創(chuàng)建滾動面板,用于顯示表格
JScrollPane scrollPane new JScrollPane(table);
// 將滾動面板添加到容器中
().add(scrollPane);
在上述示例中,我們首先創(chuàng)建了一個二維數(shù)組data,其中包含了三行數(shù)據(jù)。然后,通過定義一個列名稱的字符串?dāng)?shù)組columnNames,我們指定了表格的列標(biāo)題。
接著,我們使用這兩個數(shù)組作為參數(shù)來創(chuàng)建JTable對象table。最后,我們將table放置在一個JScrollPane中,并將它添加到容器中,以便能夠滾動顯示整個表格。
通過這樣簡單的幾步,我們就可以創(chuàng)建并顯示一個基本的JTable。
JTable 數(shù)據(jù)編輯
除了顯示數(shù)據(jù)外,JTable還允許用戶對表格中的數(shù)據(jù)進行編輯。例如,我們可以添加按鈕或其他組件來實現(xiàn)編輯功能。
下面是一個示例,演示如何在JTable中添加一個按鈕,并實現(xiàn)點擊按鈕時修改表格數(shù)據(jù)的功能:
// 創(chuàng)建數(shù)據(jù)模型
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;
}
};
// 創(chuàng)建 JTable 對象
JTable table new JTable(model);
// 創(chuàng)建按鈕列
TableButtonColumn buttonColumn new TableButtonColumn(table, editButtonAction, 3);
// 將表格添加到容器中
().add(new JScrollPane(table));
在上述示例中,我們首先創(chuàng)建了一個DefaultTableModel對象model,該對象繼承自AbstractTableModel,用于存儲表格的數(shù)據(jù)。通過重寫getColumnClass和isCellEditable方法,我們指定了表格中每列的類型以及可編輯的單元格。
接著,我們使用這個model對象來創(chuàng)建JTable實例table。然后,我們使用TableButtonColumn類創(chuàng)建了一個按鈕列,并將其添加到表格中。點擊按鈕時,會觸發(fā)editButtonAction,從而修改表格中的數(shù)據(jù)。
通過以上步驟,我們就可以實現(xiàn)在JTable中對數(shù)據(jù)進行編輯的功能。