我想让我的JTable
无法使用,但我想将JButton
添加到其中,并且按钮的列必须可以为新闻事件编辑,那么我该如何才能使此列可编辑?
这是我的表型号代码:
DefaultTableModel model = new DefaultTableModel();
model.setColumnIdentifiers(new String[]{
"IDemp",
"empNumber",
"Fname","Lname",
"BirthDate",
"Address",
"email",
"Button" }
);
//TableCellRenderer buttonRenderer = new JTableButtonRenderer();
for(int i=0;i<emps1.size();i++) {
model.addRow(new Object[]{String.format("%d",emps1.get(i).getIDemp()),
String.format("%d",emps1.get(i).getEmpNumber()),emps1.get(i).getFname(),
emps1.get(i).getLname(),emps1.get(i).getBirthDate(),
emps1.get(i).getAddress(), emps1.get(i).getEmail().getEmailAddress()});
}
这是我的jtable:
JTable emps=new JTable(model);
emps.getColumn("Button").setCellRenderer(new ButtonRenderer());
emps.getColumn("Button").setCellEditor(new ButtonEditor(new JCheckBox()));
如何使“按钮”列可编辑而其他列不可编辑?
*如果您有更好的方式将JButton
添加到JTable
,那就太棒了。“
答案 0 :(得分:4)
您需要扩展AbstractTableModel
并覆盖isCellEditable
,如下所示:
public class MyTableModel extends AbstractTableModel {
public boolean isCellEditable(int row, int col) {
if (col== columnIndex) { //columnIndex: the column you want to make it editable
return true;
} else {
return false;
}
}
}