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 21:40:11 浏览: 59
您可以将删除和修改按钮添加到每一行的操作列中,类似于之前的答案中的删除按钮。在自定义的单元格渲染器中,您可以创建包含两个按钮的`JPanel`,并将其返回作为单元格内容。
以下是修改后的代码示例:
```
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列的类为JPanel,以便进行自定义渲染
if (column == 5) {
return JPanel.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) {
// 创建包含两个按钮的JPanel
JPanel panel = new JPanel();
JButton editButton = new JButton("修改");
editButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 在此处添加执行编辑操作的代码
}
});
panel.add(editButton);
JButton deleteButton = new JButton("删除");
deleteButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 在此处添加执行删除操作的代码
}
});
panel.add(deleteButton);
return panel;
}
});
add(new JScrollPane(resultTable), BorderLayout.CENTER);
}
```
在这个例子中,您创建了一个包含两个按钮的`JPanel`,并将其返回作为单元格内容。在每个按钮上添加了一个`ActionListener`,以便在单击按钮时执行相应的操作。
阅读全文