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("更改时间"); resultTable = new JTable(tableModel); add(new JScrollPane(resultTable), BorderLayout.CENTER); } 给以上代码获取的每条数据后面添加两个按钮
时间: 2024-03-20 20:40:54 浏览: 58
要给获取的每条数据后面添加两个按钮,需要在 JTable 中使用自定义单元格渲染器。以下是实现步骤:
1. 创建一个类,继承 DefaultTableCellRenderer,并重写 getTableCellRendererComponent 方法。在该方法中,可以创建需要的 JButton 并设置其事件监听器。
2. 在 InterfaceCallExample 类中,通过调用 JTable 的 setDefaultRenderer 方法,将自定义单元格渲染器与表格中的某一列关联起来。
下面是一个示例代码:
```java
public class MyTableCellRenderer extends DefaultTableCellRenderer {
private JButton button1;
private JButton button2;
public MyTableCellRenderer() {
super();
button1 = new JButton("按钮1");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 处理按钮1的点击事件
}
});
button2 = new JButton("按钮2");
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 处理按钮2的点击事件
}
});
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JPanel panel = new JPanel(new GridLayout(1, 2));
panel.add(button1);
panel.add(button2);
return panel;
}
}
public InterfaceCallExample() {
// ...
resultTable.setDefaultRenderer(Object.class, new MyTableCellRenderer());
// ...
}
```
注意,上述代码中的按钮事件处理代码需要根据具体需求进行修改。
阅读全文