¿Como hacer que cuando se edite una celda del JTable se desencadene ciertas accione

Cyttorak
30 de Marzo del 2004
tengo una JTable con su respectiva DefaultTableModel y quiero que cuando se acabe de editar una celda se desencadene unas acciones (entre ellas que se conprueve si el nuevo valor es valido y en caso de no serlo se vuelva al que venia antes) ¿como lo hago?

khronos
30 de Marzo del 2004
cambia el editor (controlador de la celda del JTable) de la celda, por defecto el está el que viene con el JTable. Por tanto, debes de sobreescribir el metodo getCellEditorValue de la clase DefaultCellEditor

public Object getCellEditorValue()

En el nuevo metodo puedes realizar la validación de los datos, que se ejecutara después de editar una celda y pulsar Return. Para más info consulta aqui:

http://www.programacion.com/java/tutorial/swing/39/

en el apartado: "Conceptos: Editores de Celda e Interpretes" y "Validar el texto introducido por el usuario"

Espero que te ayude....

Cyttorak
30 de Marzo del 2004
He hecho lo siguiente (es una prueba para ver si sale el cartelote y asi detectar que pasa por la funcion) pero no parece funcionar:

unEditor =
new DefaultCellEditor(new JTextField ()) {
public Object getCellEditorValue() {
JOptionPane.showMessageDialog(null, "Ya has editado");
return delegate.getCellEditorValue();
}
};

tabla_clientes.setDefaultEditor(JTextField.class,unEditor);

Tambien he probado poniendo en vez de la ultima linea: tabla_clientes.setCellEditor(unEditor);

Pero no parece funcionar ninguna de las dos cosas.

chuidiang
30 de Marzo del 2004
En www.geocities.com/chuidiang en la parte de java tienes un ejemplo sencillo de un editor para un JTable. Mira a ver si te aclara algo.

Se bueno.