Событие двойного щелчка на элементе JList
У меня есть JList
с DefaultListModel
,
Как я могу сделать предмет в JList
реагировать на событие двойного щелчка?
3 ответа
Решение
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());
}
}
});
(на основе Мохамеда Сэли, принятого ответа)
Если вы используете NetBeans
Выберите JList > Окно событий> 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);
}
}
Я знаю, что у вас есть простое решение, но вы можете проверить List Action для более общего решения, которое позволит вам использовать мышь и клавиатуру. Правильный дизайн GUI должен позволять использовать любой подход.