简单代码如下:class All extends JPanel {
DefaultTableModel model;
JScrollPane jsp=new JScrollPane();
Vector column_vector=new Vector();
public All {
private void jbInit() throws Exception {
String[] Column_Names={
"代码",
"名称",
"删除",
};
column_vector.addElement(Column_Names[0]);
column_vector.addElement(Column_Names[1]);
column_vector.addElement(Column_Names[2]);
model=new DefaultTableModel(column_vector,0); allSelected();//从数据库查询所有记录 在本方法中通过model.addrow(vector);获得记录
table.setModel(model); //在一table表格中添加按钮
ButtonRenderer delete= new ButtonRenderer();
delete.setFont( new Font("宋体",Font.PLAIN,12)); table.getColumn("删除影片").setCellRenderer(delete);
table.getColumn("删除影片").setCellEditor(new ButtonEditor(new JCheckBox(),model));
jsp.getViewport().add(table);
this.add(jsp);
}
//使用内部类
class ButtonEditor extends DefaultCellEditor { protected JButton button;
private String label;
private boolean isPushed; public ButtonEditor(JCheckBox checkBox,DefaultTableModel model) {
super(checkBox);
button = new JButton();
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fireEditingStopped();
}
});
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
id=table.getValueAt(row,0).toString();
if(column==3){
label = (value == null) ? "删除" : value.toString();
button.setText(label);
isPushed = true;
delete();//在数据库中进行删除选中的那行
model.fireTableRowsDeleted(row,row);//????为何无法刷新table呢
model.fireTableDataChanged();
}
}
DefaultTableModel model;
JScrollPane jsp=new JScrollPane();
Vector column_vector=new Vector();
public All {
private void jbInit() throws Exception {
String[] Column_Names={
"代码",
"名称",
"删除",
};
column_vector.addElement(Column_Names[0]);
column_vector.addElement(Column_Names[1]);
column_vector.addElement(Column_Names[2]);
model=new DefaultTableModel(column_vector,0); allSelected();//从数据库查询所有记录 在本方法中通过model.addrow(vector);获得记录
table.setModel(model); //在一table表格中添加按钮
ButtonRenderer delete= new ButtonRenderer();
delete.setFont( new Font("宋体",Font.PLAIN,12)); table.getColumn("删除影片").setCellRenderer(delete);
table.getColumn("删除影片").setCellEditor(new ButtonEditor(new JCheckBox(),model));
jsp.getViewport().add(table);
this.add(jsp);
}
//使用内部类
class ButtonEditor extends DefaultCellEditor { protected JButton button;
private String label;
private boolean isPushed; public ButtonEditor(JCheckBox checkBox,DefaultTableModel model) {
super(checkBox);
button = new JButton();
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fireEditingStopped();
}
});
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
id=table.getValueAt(row,0).toString();
if(column==3){
label = (value == null) ? "删除" : value.toString();
button.setText(label);
isPushed = true;
delete();//在数据库中进行删除选中的那行
model.fireTableRowsDeleted(row,row);//????为何无法刷新table呢
model.fireTableDataChanged();
}
}
解决方案 »
- servlet文件中含有自定义包应该怎样编译?
- swing文本域的问题
- Console的问题.大家帮忙看看,急啊!!!
- 请问有没有接受过 北大青鸟 或niit技术培训的,请说一下感受好嘛!我想去接受培训,但是不知那个号!!谢谢啦!!!
- 求教以下代码中两个简单的问题~~先谢了!
- 请教servlet的helloservlet基础问题
- 如何制作一个像jbuilder里边运行相类似的按钮
- 请大家推荐好的以例子(最好是小项目)为主的书籍,谢谢!!
- 怎么把文件中的中文字符和英文区分开来?
- applet导出的问题,怎么去掉ie里的缓存呢?
- IBM发布AUS:消除你Java程序中脆弱的API 大家一起研究一下怎么样?百分送。
- 请问正则表达式中的\ () ' {} 怎么表示?
model.fireTableRowsDeleted(row,row);//????为何无法刷新table呢
换成:
((DefaultTableModel)model).removeRow(row);
model.fireTableStructureChanged();