Comment changer le curseur de la souris en java?

j'ai une liste de mots dans la liste. Chaque fois que je pointe le curseur de la souris sur un mot, je veux que le curseur se transforme en un curseur main. Maintenant mon problème est de savoir comment le faire?

quelqu'un Pourrait-il m'aider avec ce problème?

25
demandé sur Matthias Braun 2011-09-09 12:48:58

2 réponses

un MouseMotionListener sur votre JList pour détecter quand la souris y entre et ensuite appeler setCursor pour le convertir en un HAND_CURSOR.

exemple de code:

final JList list = new JList(new String[] {"a","b","c"});
list.addMouseMotionListener(new MouseMotionListener() {
    @Override
    public void mouseMoved(MouseEvent e) {
        final int x = e.getX();
        final int y = e.getY();
        // only display a hand if the cursor is over the items
        final Rectangle cellBounds = list.getCellBounds(0, list.getModel().getSize() - 1);
        if (cellBounds != null && cellBounds.contains(x, y)) {
            list.setCursor(new Cursor(Cursor.HAND_CURSOR));
        } else {
            list.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
        }
    }

    @Override
    public void mouseDragged(MouseEvent e) {
    }
});
32
répondu dogbane 2011-09-09 10:21:37

vous voulez probablement regarder le Component.setCursor la méthode, et l'utiliser avec le Cursor.HAND constante.

18
répondu aioobe 2011-09-09 08:50:23