Java - Celdas de JTable de distitno tipo

 
Vista:

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;


}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Celdas de JTable de distitno tipo

Publicado por chuidiang (950 intervenciones) el 26/10/2006 19:38:36
Hola:

Una celda de un JTable puede estar o no editándose.

Si se está editando, el componente que se presenta lo decide el CellEditor. Como lo has hecho, cuando se está editando una celda, se presenta el combo.

Si la celda NO se está editando, el que decide qué componente se pinta en la celda es el CellRender. Este por defecto muestra JLabel. Si no has cambiado el CellRender, cuando dejes de editar la celda desaparecerá el combo y aparecerá un label.

Tienes ejemplos de ambas cosas en http://www.chuidiang.com/java/tablas/tablarender/tablarender.html y en http://www.chuidiang.com/java/tablas/tablaeditor/tablaeditor.html

Sé bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar