Je crée une application en Java. Je dois fournir un comportement supplémentaire lors de l'édition d'une cellule dans un JTable. Donc, idéalement, cela se produira lorsque la cellule perdra son focus après l'édition. Selon le post-traitement, je pourrais réinitialiser la valeur de la cellule. J'ai essayé d'utiliser un éditeur de cellules mais cela ne me donne pas le comportement désiré.Fournir un comportement supplémentaire lors de l'édition d'une cellule dans JTable
Dans JTable par défaut uniquement lorsque je double-clique sur une cellule, elle devient modifiable. Mais dans ma mise en œuvre de CellEditor, la cellule devient modifiable dès qu'elle est mise en évidence.
Voici le code pour My CellEditor personnalisé,
public class ParameterDefinitionEditor
extends AbstractCellEditor
implements TableCellEditor{
private JTable table;
private DefaultTableModel defaultTableModel;
public ParameterDefinitionEditor(DefaultTableModel defaultTableModel,
JTable table) {
super();
this.table = table;
this.defaultTableModel = defaultTableModel;
TableColumnModel columnModel = table.getColumnModel();
columnModel.getColumn(0).setCellEditor(this);
}
public Component getTableCellEditorComponent(JTable table,
Object value,
boolean isSelected,
int row,
int column) {
if (isSelected) {
// Do some processing.
}
((JTextField)component).setText((String)value);
// Return the configured component
return component;
}
public Object getCellEditorValue() {
return ((JTextField)component).getText();
}
}
Toute aide sera appréciée. Merci.
pour l'enregistrement: il est une implémentation non valide de CellEditor - il _doit_ notifie son auditeur lors de l'édition est terminée pour raisons internes! – kleopatra