Je cherchais une réponse pour un previous question et ai eu une idée ingénieuse pour surmonter une limite sur JTable
. J'ai besoin que l'éditeur soit différent ligne par ligne, alors que JTable
ne peut gérer qu'un seul éditeur pour chaque colonne.refresh setCellEditor pour JTable
Donc mon idée est d'utiliser un MouseListener
pour vérifier la ligne et la colonne sur le JTable
et définir un nouvel éditeur à chaque fois. Mais, appeler le setCellEditor()
une seconde fois n'a aucun effet. L'éditeur reste à être le premier qui a été mis en place. Alors, comment faire fonctionner "setCellEditor" une seconde fois pour la même colonne?
Voici le code MouseListener
.
public void mouseClicked(MouseEvent e) {
int cols = resultTable.columnAtPoint(new Point(e.getX(), e.getY()));
int rows = resultTable.rowAtPoint(new Point(e.getX(), e.getY()));
StorageObject item = (StorageObject) resultTable.getModel().getValueAt(rows, cols);
TableColumn col = resultTable.getColumnModel().getColumn(cols);
col.setCellEditor(new MyComboBoxEditor(item.list));
}
oui. C'est ainsi que vous gérez plusieurs types d'éditeur pour une seule colonne. –