evento doppio clic sull'elemento JList
-
30-09-2019 - |
Domanda
Ho un JList
con un DefaultListModel
.
Come posso fare un elemento in un JList
reagire a eventi doppio clic?
Soluzione
String[] items = {"A", "B", "C", "D"};
JList list = new JList(items);
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
JList list = (JList)evt.getSource();
if (evt.getClickCount() == 2) {
// Double-click detected
int index = list.locationToIndex(evt.getPoint());
} else if (evt.getClickCount() == 3) {
// Triple-click detected
int index = list.locationToIndex(evt.getPoint());
}
}
});
Altri suggerimenti
So che hai una soluzione semplice, ma si consiglia di controllare le Action List per una soluzione più generale che vi permetterà di utilizzare il mouse e la tastiera. La corretta progettazione GUI dovrebbe consentire l'uso di utilizzare entrambi gli approcci.
(sulla base di Mohamed Saligh, la risposta accettata)
Se si sta utilizzando NetBeans
Selezionare il JList> finestra Eventi> mouseClicked
private void jListNicknamesMouseClicked(java.awt.event.MouseEvent evt) {
JList list = (JList)evt.getSource();
if (evt.getClickCount() == 2) {
int index = list.locationToIndex(evt.getPoint());
System.out.println("index: "+index);
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow