Celdas de JTable de distitno tipo
Publicado por Javaman (1 intervención) el 26/10/2006 15:20:50
Hola a tod@s:
Tengo un JTable y en algunas filas de la columna 3 quiero poner un combo y en otras dejarlas tal cual. Consigo hacerlo, pero en cuanto selecciono uno de los combos y luego clickeo en otra celda que no es de combo me desaparece el combo de dicha celda.
¿Qué es lo que estoy haciendo mal?
Pongo el código del celleditor.
public class ComboEditor extends DefaultCellEditor {
private static final long serialVersionUID = 1L;
protected JComboBox combo;
private Color newColor;
private boolean bFontColor = false;
private ColorRenderer colRend = null;
private JTable thisTable = null;
private JTextField text = null;
LanguageManager lm = LanguageManager.getInstance();
public ComboEditor(JCheckBox checkBox) {
super(checkBox);
combo = new JComboBox();
text = new JTextField();
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
thisTable = table;
Object obj = table.getValueAt(row, column);
if(obj instanceof Vector){
Vector v = (Vector) obj;
for(Object o:v){
combo.addItem(o);
}
}else{
return text;
}
return combo;
}
Tengo un JTable y en algunas filas de la columna 3 quiero poner un combo y en otras dejarlas tal cual. Consigo hacerlo, pero en cuanto selecciono uno de los combos y luego clickeo en otra celda que no es de combo me desaparece el combo de dicha celda.
¿Qué es lo que estoy haciendo mal?
Pongo el código del celleditor.
public class ComboEditor extends DefaultCellEditor {
private static final long serialVersionUID = 1L;
protected JComboBox combo;
private Color newColor;
private boolean bFontColor = false;
private ColorRenderer colRend = null;
private JTable thisTable = null;
private JTextField text = null;
LanguageManager lm = LanguageManager.getInstance();
public ComboEditor(JCheckBox checkBox) {
super(checkBox);
combo = new JComboBox();
text = new JTextField();
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
thisTable = table;
Object obj = table.getValueAt(row, column);
if(obj instanceof Vector){
Vector v = (Vector) obj;
for(Object o:v){
combo.addItem(o);
}
}else{
return text;
}
return combo;
}
Valora esta pregunta


0