📅  最后修改于: 2023-12-03 14:42:16.609000             🧑  作者: Mango
在Java Swing中,JTable是用于显示表格数据的组件。有时候,我们需要给JTable加上一个功能,即删除所有行。这个功能可以帮助我们清空JTable中的所有数据,以便重新加载新的数据。
下面将介绍如何使用Java Swing JTable删除所有行。
首先,在Java Swing中创建一个JTable。我们可以使用以下代码来创建一个带有三列的JTable:
String[] columnNames = {"First Name", "Last Name", "Age"};
Object[][] data = {{"John", "Doe", 25}, {"Jane", "Doe", 24}, {"Bob", "Smith", 30}};
JTable table = new JTable(data, columnNames);
这将创建一个包含三列和三行数据的JTable。
接下来,我们需要向窗体中添加一个“删除所有行”按钮。我们可以使用以下代码来创建一个JButton:
JButton btnDeleteRows = new JButton("删除所有行");
现在我们需要向按钮添加一个ActionListener,以便在用户单击它时删除所有JTable行。我们可以使用以下代码来处理按钮单击事件:
btnDeleteRows.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.setRowCount(0);
}
});
这将删除JTable中的所有行。它获取JTable的TableModel并将其行数设置为零。
现在,当用户单击“删除所有行”按钮时,所有的行将从JTable中删除。
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Main extends JFrame {
private JTable table;
public Main() {
String[] columnNames = {"First Name", "Last Name", "Age"};
Object[][] data = {{"John", "Doe", 25}, {"Jane", "Doe", 24}, {"Bob", "Smith", 30}};
DefaultTableModel model = new DefaultTableModel(data, columnNames);
table = new JTable(model);
getContentPane().add(new JScrollPane(table));
JButton btnDeleteRows = new JButton("删除所有行");
btnDeleteRows.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setRowCount(0);
}
});
getContentPane().add(btnDeleteRows, "South");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Java Swing JTable删除所有行");
setSize(400, 300);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new Main();
}
}
通过上述步骤,我们可以很容易地在Java Swing JTable中添加删除所有行的功能。这个功能非常有用,因为它帮助我们轻松地清除JTable中的所有数据,以便重新加载新的数据。