Use un MouseMotionListener en su JList para detectar cuándo el mouse entra en él y luego llame al setCursor
para convertirlo en HAND_CURSOR
.
Código de ejemplo:
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) {
}
});
lo que si quiero los cambios del cursor para estar sucede cuando señalo a la palabra, no en la lista? ¿Es posible? – sack
@Mikel He actualizado mi respuesta para mostrar una mano solo si el cursor está sobre los elementos en la lista. – dogbane
Sí, funciona, pero hay un pequeño problema. Cuando señalo el mouse al lado de la palabra, aún aparece un cursor de mano. Quiero que la palabra solo aparezca como un cursor de mano cuando señalo el cursor del mouse. – sack