Bonjour,
je souhaite faire un fonction modifier un peu élaborer (pour moi).
Je travaille sur un objet spectacle: id, nom, date, nbplaces et tarif.
L'utilisateur entre le nom du spectacle à modifier et récupère tt les occurence grace a la fonction indexOf(String).
Mon problème c'est que je n'arrive pas a modifier mes objet en question j'obitien une execption que je n'ai jamais rencontrer du genre OutOfBoundExcpetion.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 //Collection contenant les spectacles trouvés a modifier ArrayList<Spectacle> spectacleTrouve = new ArrayList<Spectacle>(); //enregistre les indexs de ASpectacle des Spectacles à modifier int lesIndex[]; int nbSpectaclesTrouve = 0; boolean trouve = false; System.out.print("Entrez nom du spectacle à modifier:"); nom = Cons.saisirChaine(); for( Iterator<Spectacle> i = ASpectacle.iterator(); i.hasNext(); ) { spectacle = i.next(); //Vérifie la présence de la sous-chaine nom(chaine rechercher par l'utilisateur) //dans le nom du spectacle courant if(spectacle.getNom().indexOf(nom) != -1) { spectacleTrouve.add(spectacle); nbSpectaclesTrouve++; trouve = true; } } nbSpectaclesTrouve--; if(trouve) { //on créer le tableau avec le nombre d'elements trouvés lesIndex = new int[nbSpectaclesTrouve]; for(int j = 0; j < lesIndex.length; j++) { lesIndex[j] = ASpectacle.indexOf(spectacleTrouve.get(j)); } System.out.println((spectacleTrouve.size())+" spectacle(s) trouvé(s)."); int j = 0; for( Iterator<Spectacle> i = spectacleTrouve.iterator(); i.hasNext(); ) { spectacle = i.next(); System.out.println("ID: "+spectacle.getId()); System.out.println("Nom: "+spectacle.getNom()); System.out.println("Date: "+dateToString( spectacle.getDate() ) ); System.out.println("Nombre de places: "+spectacle.getNbPlaces()); System.out.println("Tarif: "+spectacle.getTarif()); System.out.print("Modifier? (o/n)"); if(Cons.saisirChaine().equals("o")) { System.out.println("Nom: "+spectacle.getNom()); System.out.print("Entrez nouveau nom:"); nom = Cons.saisirChaine(); if(!nom.equals("")) spectacle.setNom(nom); System.out.println("Date: "+dateToString( spectacle.getDate() ) ); System.out.print("Entrez nouvelle date:"); date = stringToDate(Cons.saisirChaine()); spectacle.setDate(date); System.out.println("Nombre de places: "+spectacle.getNbPlaces()); System.out.print("Entrez nouveau nb place:"); nbPlaces = Cons.saisirEntier(); if(nbPlaces != 0) spectacle.setNbPlaces(nbPlaces); System.out.println("Tarif: "+spectacle.getTarif()); System.out.print("Entrez nouveau tarif:"); tarif = Cons.saisirReel(); if(tarif != 0) spectacle.setTarif(tarif); ASpectacle.set(lesIndex[j], spectacle); j++; } } }
Partager