2015-03-10 6 views
0

Для школьного проекта мне нужно использовать ListSelectionListener (LSL) в JList. Я знаю, что LSL отвечает на щелчок мышью и выключение мыши. Но для проекта, я должен позволить ему реагировать на двойной щелчок. Есть ли способ заставить LSL ответить на это?ListSelectionListener двойной щелчок

ответ

2

Я не знаю, что такое ListActionHandler, так как вы не указали для него код.

Я предполагаю, что он реализует MouseListener, или может распространяться MouseAdapter. Если это так, появится метод, называемый public void mouseClicked(MouseEvent e), который вам нужно будет реализовать. Там, просто положи в случае проверки только реагировать на двойные щелчки:

public void mouseClicked(MouseEvent e) { 
    if (e.getClickCount() == 2) { 
    // do your stuff here 
    } 
} 

EDIT:

Теперь, когда вы исправил свой пост к ListSelectionListener, вы заметите, что там это только один метод для реализации, void valueChanged(ListSelectionEvent e), который напрямую не переводит на мыши.

Почему? Потому что мышь не единственный способ изменить выбор в JList. Это можно сделать с помощью клавиш со стрелками или программно.

Это может быть (вроде) разрешено, добавивв JList, а затем внедряя код счета щелчка, который я показал. Тем не менее, большинство из них считают это взломом, поскольку использование MouseListeners для отслеживания изменений в выборе JList не рекомендуется по причинам, о которых уже упоминалось.

+0

Я попытался удалить ListSelectionListener, и теперь я использую MouseLustener. Насколько я знаю, он отлично работает! Спасибо! –