Originariamente inviato da giaomnitel1
Però se seleziono una riga, tengo premuto il mouse e trascino in basso la selezione si sposta ... sarebbe possibile evitare questo comportamento? vorrei che la selezione avvenga semplicemente tramite click del mouse e non tramite trascinamento ...
Si può fare ma in un modo un po' particolare: estendi JTable e fai l'override di changeSelection():
codice:
class MyTable extends JTable {
// Metti il o i costruttori che ti interessano ....
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) {
if (!extend) {
super.changeSelection(rowIndex, columnIndex, toggle, extend);
}
}
}
Per comprendere il perché sia necessario non accettare un "extend" dovresti leggere la documentazione di changeSelection() e magari mettere un po' il naso nei sorgenti di JTable e javax.swing.plaf.basic.BasicTableUI.
Notare che così si impedisce che il trascinamento con il mouse faccia cambiare selezione ma si impedisce anche il "trascinamento" da tastiera con shift+freccia su/giu.