问题描述
我想根据同一列中的变量添加按钮和组合框,但是我不知道是否可以为每个特定的单元分配不同的编辑器。我尝试像这样的东西:
tableTransporteModel.getDataVector().clear();
tableTransporteModel.fireTableDataChanged();
for (TransportePorTransportistaDto each : ventas) {
Object[] newRow = new Object[4];
newRow[0] = each.at0;
newRow[1] = each.at1;
newRow[2] = each.at2;
if(each.estado.toupperCase().equals("OPEN")) {
JButton b = getBtutton();
newRow[3] = b;
}else {
TableColumn tc = tableTransporte.getColumnModel().getColumn(3);
tc.setCellEditor(new DefaultCellEditor(getCbStates(each.estado.toupperCase())));
newRow[3] = getCbStates(each.estado.toupperCase());
}
private void tablaMouseClicked(java.awt.event.MouseEvent evt) {
int column = tableTransporte.getColumnModel().getColumnIndexAtX(evt.getX());
int row = evt.getY()/tableTransporte.getRowHeight();
if(row < tableTransporte.getRowCount() && row >= 0 && column < tableTransporte.getColumnCount() && column >= 0){
Object value = tableTransporte.getValueAt(row,column);
if(value instanceof JButton){
((JButton)value).doClick();
asignarPedido(row);
}
if(value instanceof JComboBox){
//((JCheckBox)value).doClick();
JComboBox ch = comboBox;
}
}
}
public class Render extends DefaultTableCellRenderer{
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column) {
if(value instanceof JButton){
JButton btn = (JButton)value;
if(isSelected){
btn.setForeground(table.getSelectionForeground());
btn.setBackground(table.getSelectionBackground());
}else{
btn.setForeground(table.getForeground());
btn.setBackground(UIManager.getColor("Button.background"));
}
return btn;
}
if(value instanceof JComboBox){
JComboBox ch = new JComboBoxEstadoT("EN TRANSITO");
return ch;
}
return super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column); //To change body of generated methods,choose Tools | Templates.
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)