CellEditors escludono a vicenda in JTable
-
12-09-2019 - |
Domanda
Al momento ho un problema per cui la modifica del contenuto di una cella in una JTable altera il contenuto di un altro; due colonne sono reciprocamente esclusivi. Sono entrambi caselle di controllo.
Al momento, se mi altero una cella, non è fino a quando l'altro è ridisegnato che aggiorna. Pertanto, entrambe le celle della riga possono essere visualizzati come essere selezionato in qualsiasi momento. Questo può essere superato chiamando updateUI (), ma è lento e non è una grande idea in generale.
Qualcuno ha qualche consigli o suggerimenti?
Soluzione
Sembra che si deve usare un TableModelListener per ascoltare le modifiche al TableModel. Quando una casella di controllo è cambiata si riceverà un evento di aggiornamento e si dovrebbe quindi aggiornare l'altra casella di controllo utilizzando model.setValueAt (...). Il modello è responsabile della notifica la vista di ridipingere la cella.