private JButton callButton; private JTable resultTable; private DefaultTableModel tableModel; public InterfaceCallExample() { super("Interface Call Example"); setSize(400, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); callButton = new JButton("查看数据"); callButton.addActionListener(this); panel.add(callButton); add(panel, BorderLayout.NORTH); tableModel = new DefaultTableModel(); tableModel.addColumn("id"); tableModel.addColumn("材料类型"); tableModel.addColumn("状态"); tableModel.addColumn("创建时间"); tableModel.addColumn("更改时间"); tableModel.addColumn("操作"); resultTable = new JTable(tableModel); add(new JScrollPane(resultTable), BorderLayout.CENTER); } 如何在操作那一列的每条数据后面加上删除按钮
时间: 2024-03-20 16:40:00 浏览: 54
您可以在`tableModel`中添加一个额外的列,用于存储每行数据的删除按钮。然后,在`resultTable`中设置一个自定义的单元格渲染器,以在该列中呈现删除按钮。
以下是修改后的代码示例:
```
private JButton callButton;
private JTable resultTable;
private DefaultTableModel tableModel;
public InterfaceCallExample() {
super("Interface Call Example");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
callButton = new JButton("查看数据");
callButton.addActionListener(this);
panel.add(callButton);
add(panel, BorderLayout.NORTH);
tableModel = new DefaultTableModel();
tableModel.addColumn("id");
tableModel.addColumn("材料类型");
tableModel.addColumn("状态");
tableModel.addColumn("创建时间");
tableModel.addColumn("更改时间");
tableModel.addColumn("操作");
resultTable = new JTable(tableModel) {
@Override
public Class getColumnClass(int column) {
// 返回第5列的类为按钮,以便进行自定义渲染
if (column == 5) {
return JButton.class;
}
return super.getColumnClass(column);
}
};
// 设置第5列的渲染器
resultTable.getColumnModel().getColumn(5).setCellRenderer(new TableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
// 创建按钮
JButton deleteButton = new JButton("删除");
deleteButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 在此处添加删除该行的代码
}
});
return deleteButton;
}
});
add(new JScrollPane(resultTable), BorderLayout.CENTER);
}
```
请注意,在`getTableCellRendererComponent`方法中,您需要将按钮添加到一个`JPanel`或`JButton`上,并返回该组件。由于您在创建每个按钮时都添加了一个`ActionListener`,因此在单击按钮时可以执行相应的操作。
阅读全文