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++;
		}
 
	}
}