Swing 表格的使用
表格是程序中一種非常常見的組件,Swing中提供了用于創(chuàng)建表格的JTable類。JTable可以以二維表格的形式顯示數(shù)據(jù),并且允許用戶對表格中的數(shù)據(jù)進行編輯。 JTable 構造方法 在使用JTa
表格是程序中一種非常常見的組件,Swing中提供了用于創(chuàng)建表格的JTable類。JTable可以以二維表格的形式顯示數(shù)據(jù),并且允許用戶對表格中的數(shù)據(jù)進行編輯。
JTable 構造方法
在使用JTable之前,我們首先需要了解幾個JTable的構造方法:
- JTable(int numRows, int numColumns):這個構造方法使用DefaultTableModel來創(chuàng)建一個具有numRows行和numColumns列個空單元格的JTable。
- JTable(Object[][] rowData, Object[] columnNames):這個構造方法使用一個二維數(shù)組rowData來創(chuàng)建一個JTable,其中rowData中的值將會被顯示在表格中,而columnNames則是表格的列名稱。
通過這兩個構造方法,我們可以根據(jù)數(shù)據(jù)的不同形式來創(chuà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ù)。然后,通過定義一個列名稱的字符串數(shù)組columnNames,我們指定了表格的列標題。
接著,我們使用這兩個數(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ù)進行編輯的功能。