Ich habe eine JList
mit a DefaultListModel
.
Wie kann ich ein Element in einer JList
Reaktion auf ein Doppelklickereignis erstellen?
Antworten:
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());
}
}
});
if (evt.getButton() == MouseEvent.BUTTON1)
Ich weiß, dass Sie eine einfache Lösung haben, aber vielleicht möchten Sie List Action nach einer allgemeineren Lösung durchsuchen, mit der Sie sowohl die Maus als auch die Tastatur verwenden können. Das richtige GUI-Design sollte es der Verwendung ermöglichen, beide Ansätze zu verwenden.
(basierend auf Mohamed Saligh, der akzeptierten Antwort)
Wenn Sie NetBeans verwenden
Wählen Sie das Fenster JList> Ereignisse> 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);
}
}