Ciao a tutti,
sto lavorando su una Jtable.
ho relizzato un JPopupMenù che cliccando col tasto destro su una riga della mia JTable mi apre un menù e in esso vi è un sottomenù che prevede la cancellazione della riga.
Per la prima cancellazione va tutto a meraviglia, dalla seconda cancellazione in poi il sistema conincia a dare i numeri, comincia a cancellarmi 2 righe alla terza me ne cancella tre fino a quando ovviamente il sistema mi ritonerà un ArrayIndexOutOfBoundsException (ovviamente aggiungo io).
vi invio parte di codice per relizzare la cancellazione
codice:
//GuiFrame showPopup Method
private void showPopup(MouseEvent me) {
if (pm.isPopupTrigger(me)) {
java.awt.Point p = me.getPoint();
int rowToDelete = jTable1.rowAtPoint(p);
//potrei anche cancellare l'if ma per adesso lo mantengo
if (rowToDelete != -1) {
//JPopupMenu
pm.show(jTable1, p.x, p.y);
//JMenuItem
one.addActionListener(new PopupListener(tableModel, rowToDelete));
}
}
}
codice:
//PopupListener
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class PopupListener implements ActionListener {
private DefaultTableModel1 model;
private int riga;
public PopupListener(DefaultTableModel1 model, int riga){
this.model=model;
this.riga=riga;
}
@Override
public void actionPerformed(ActionEvent e) {
model.removeRow(riga);
}
}
Come mai mi succede questo?
Avevo provato anche a usare la SwingUtilities ma il problema rimane.
Grazie per ogni aiuto/consiglio.