¿Como hacer que cuando se edite una celda del JTable se desencadene ciertas accione
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?
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....
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....
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.
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.
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.
Se bueno.