|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
[JAVA] Help me: Jlist... :(
Ho un problema in Java con una JList: praticamente all'atto del click del mouse su un elemento della JList mi deve stampare a video (con una System.out.println) tale elemento.
L'algoritmo che ho creato funziona (ho associato all'evento MouseClicked tale algoritmo) però funziona su tutti gli elementi della JList tranne che... per l'ultimo!!!! Sia i metodi GetSelectedValue() che GetSelectedIndex() non sembrano funzionare sull'ultimo elemento della JList. Com'è possibile?
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Ti conviene usare un ListSelectionListener, non MouseListener.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
up
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Non capisco il dubbio/problema. Se devi solo "ascoltare" quando qualcosa cambia nella selezione allora va bene ListSelectionListener. Se invece devi fare qualcosa ogni volta che fai click sulla JList allora va bene MouseListener.
Nessuno dei due listener fornisce informazioni dirette su quale è l'elemento o gli elementi selezionati in quel momento. Questa è una informazione che devi ricavare tu dal JList. Sia che usi MouseListener oppure ListSelectionListener, se vuoi sapere esattamente quale è la selezione, allora devi usare i vari getSelectedIndex(), getSelectedIndices(), ecc.... a seconda del modo di selezione impostato. Se usi MouseListener puoi anche sapere quale è l'elemento interessato dall'evento perché con il Point dell'evento puoi sapere l'indice nella JList usando locationToIndex(). Sei tu che devi scegliere.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#6 | |
|
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
Quote:
Ad es. ho fatto una prova per verificarne il funzionamento: quando col click del mouse si clicca su un elemento, stampa il nome dell'elemento e l'indice nella jlist. La stampa a video avviene per tutti gli elementi della lista correttamente, TRANNE che per l'ultimo elemento. Ultima modifica di PaVi90 : 12-04-2008 alle 16:40. |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Mi sembra molto strano .... posta il codice.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#8 |
|
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
Ecco qua:
Codice:
[...]
DefaultListModel modellopanini = new DefaultListModel();
[...]
private void ListaPanini1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ListaPanini1MouseClicked
if (modellopanini.isEmpty()==false){
for (int I=0; I<Prodotti.size()-1; I++){
// if (modellopanini.get(ListaPanini1.getSelectedIndex()).equals(Prodotti.get(I).nome)==true){
if (ListaPanini1.getSelectedValue().equals(Prodotti.get(I).nome)==true){
System.out.println(ListaPanini1.getSelectedIndex());
System.out.println(ListaPanini1.getSelectedValue());
jTextField6.setText(String.valueOf(Prodotti.get(I).prezzo));
}
}
}
}//GEN-LAST:event_ListaPanini1MouseClicked
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
A parte il solito codice del c...avolo autogenerato da un IDE, io vedo solo una cosa: hai fatto un ciclo for con la condizione I<Prodotti.size()-1. In tale modo l'ultimo elemento in Prodotti sicuramente non viene preso in considerazione.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: May 2007
Città: Vivo in un mondo in cui tutti ti accusano e ti additano per un nonulla...
Messaggi: 9995
|
Mi sono dimenticato di togliere quel -1 !! L'avevo inserito prima per prova, poi ho copincollato quel pezzo di codice all'interno di quel listener object e mi sono dimenticato di togliere il -1 Che errore demente! Ti ringrazio moltissimo Problema risolto!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:05.




















