Salver agazzi,
ho creato vedendo i post precedenti un evento su una JTable quando un utente clicca su una riga col tasto destro appare un JPopupmenu.
Le opzioni che un utente ha sono Modifica, Cancella e Stampa....
ora su questa tabella ho implementato 2 eventi del mouse
doppio click e tasto destro
per prendere la riga sulla quale l'utente desidera fare operazioni procedo in questo modo
codice:
public void mouseClicked(MouseEvent me) {
TableExample2 t = (TableExample2)me.getSource();
int row = t.rowAtPoint(me.getPoint());
int column = t.columnAtPoint(me.getPoint());
if (me.getClickCount() == 2) {
//System.out.println("doppio click");
riempiText(row, column);
}//fine if
}
ora faccio lo stesso anche per il tasto destro
codice:
if(me.getButton() == MouseEvent.BUTTON3) //tasto dx
{
// cancellaOperazione();
popup = new JPopupMenu();
menuItem = new JMenuItem("Modifica");
menuItem.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ) {
// System.out.println()
riempiText2(row,column);
}//fine metodoVoid
});//fine actionlistener
popup.add(menuItem);
MouseListener popupListener = new PopupListener(popup);
tableOperazioni.addMouseListener(popupListener);
}}//fine else e if
ora il problema è che richiede che io dichiari come final la variabile row. In questo modo una volta che a row assegno un valore poi ogni volta che faccio tasto destro il valore rimane sempre quello e i risultati sono sbagliati
come posso fare?????