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.

Rispondi quotando