你是想在编辑的时候响应button事件还是显示的时候?你是怎样实现放入jbutton的?
你最好用重写cellrenderer或则celleditor来实现你要的功能,这样应该没问题,
我做过
你最好用重写cellrenderer或则celleditor来实现你要的功能,这样应该没问题,
我做过
解决方案 »
- Java访问共享文件问题
- %s替换
- MySql外键约束可以为null吗?
- DNS编程问题
- 黑箱分析应用程序的网络传输 顶了也有分
- 两分钟开发一个AJAX应用的教程
- 向个位高手请教一个很简单的问题, String a=null; out.print("hello"+a+"love"); 能输出什么结果,为什么?小弟感激不进!
- 关于java.util.Date.toString()方法的问题?
- java mail中增加文件夹的问题,谢谢各位急
- 另一个Think in java书中源程序编译,满脸的畸形字符,最后出现一百个错误!!!!!
- jtable中有一列中的各cell是用一自定义的Renderer表现,此renderder表现为一link,如何当鼠标移动到此renderder上时,出现手状图形?实质
- 如何让JFrame在显示时自动最大化
//changeButtonRender
private class ChangeButtonRenderer extends JButton implements TableCellRenderer{
JButton button=new JButton();
public ChangeButtonRenderer(){
button.setBorder(BorderFactory.createLineBorder(Color.black));
setOpaque(true);
}
public Component getTableCellRendererComponent(
JTable t,Object value,
boolean isSelected,
boolean hasFocus,
int row,int col){
button.setText(dataModel.getValueAt(row,3).toString());
return button;
}
}
//ChangeButtonEditor
public class ChangeButtonEditor extends DefaultCellEditor {
protected JButton button;
private int hererow; public ChangeButtonEditor(JCheckBox checkBox) {
super(checkBox);
button = new JButton();
button.setBorder(BorderFactory.createLineBorder(Color.black));
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dataModel.setValueAt((Integer.parseInt(dataModel.getValueAt(hererow,3).toString()) +1)%3+"",hererow,3);
button.setText(dataModel.getValueAt(hererow,3).toString());
}
});
} public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
hererow=row;
button.setText(dataModel.getValueAt(hererow,3).toString());
return button;
} public Object getCellEditorValue() {
return null ;
} public boolean stopCellEditing() {
return super.stopCellEditing();
} protected void fireEditingStopped() { }
}
protected void fireEditingStopped() { super.fireEditingStopped();
}
return null ;
}
这个方法好像也有问题,当取消编辑状态时,好像jtable是调用这个方法获取修改后的值的。