Question

J'ai un JList avec un DefaultListModel.

Comment puis-je faire un élément dans une JList réagir à l'événement double-cliquez sur?

Était-ce utile?

La solution

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());
        }
    }
});

Autres conseils

Je sais que vous avez une solution simple, mais vous pouvez vouloir vérifier Liste Action pour une solution plus générale qui vous permettra d'utiliser la souris ainsi que le clavier. conception graphique appropriée devrait permettre l'utilisation d'utiliser soit l'approche.

(sur la base de Mohamed Saligh, la réponse acceptée)

Si vous utilisez NetBeans

Sélectionnez la JList> Fenêtre Événements> 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);
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top