IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Tableau dynamique + Iterator<ArrayList>


Sujet :

Développement Web en Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2014
    Messages : 80
    Par défaut Tableau dynamique + Iterator<ArrayList>
    Bonjour à tous,

    Je me permets de venir vers vous car j’ai besoin d’un petit coup de main.
    Je développe une interface de consultation de planning en jee (tomcat7).

    J’essaye d’implémenter une notion relativement simple mais je n’arrive pas à la faire correspondre à mon besoin.
    J’essaye de créer un tableau à deux dimensions « un peu comme à la bataille navale ».
    Les colonnes sont fixe de « a » à « z » et les lignes sont incrémentées [i] par une boucle for{}.

    Mon souhait est de pouvoir parcourir un ArrayListe à l’aide de l’objet Iterator et de pouvoir stocker les résultats, par exemple dans la cellule a3, c5, f2, etc……

    J’ai lu beaucoup de doc, mais j’ai beaucoup de mal implémenter le code.

    Sauf erreur j’ai mon tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String [][] Tbl = new String [][]{{},{"a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"}} ;
    Et mon arrayList :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(Iterator<Affaire> it = listeAffaires.iterator(); it.hasNext();){
    	    	Affaire affaire = it.next();
    	        out.println("<p>" + affaire.numRdv() + "</p>");
    }
    Si vous pouvez m’aider à avancer un peu, c’est super cool.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [][] Tbl = new String [][]{{},{"a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"}} ;
    est un tableau à 2 dimension avec 2 lignes : une vide, sans colonne, et une avec une colonne qui contient "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z", donc rien à voir avec de que tu décris.

    Pour faire ce genre de chose, comme beaucoup de chose avec un langage orienté objet, c'est de faire un objet (donc une classe). Comme ça tu peux gérer séparément et donc plus simplement chaque aspect :

    • stocker les données : dans un tableau à 2 dimensions, si tu veux, sauf si on peut ajouter des lignes comme on veut, où une ArrayList de tableau sera plus pratique.
    • adresser une colonne du tableau, avec une lettre de a à z
    • adresser une ligne avec un nombre de 0 à n-1, ou 1 à n, comme tu veux


    Si ton tableau est de taille fixe, avec 26 lignes, tu peux faire :

    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
    public class Grille { // Grille est un exemple, tu mets ce que tu veux
     
        private final String[][] tableau = new String[26][26];
     
        // je ne mets aucun contrôle, tu les ajouteras
        public final char toColonne(int index) {
     
              return (char) ( 'a'+index ) ); // donne 'a' pour 0, 'b' pour 1, etc.
     
        }
     
        // je ne mets aucun contrôle, tu les ajouteras
        public final int fromColonne(char index) {
              return 'a'-index; // donne 0 pour 'a', 1 pour 'b', etc...
        }
     
     
     
    }
    A partir de ça, tu dois pouvoir faire une méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public String getString(int ligne, char colonne) {
    }
    qui renvoie le contenu de la case de ligne ligne et de colonne colonne.

    Tu peux même en faire une comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public String getString(String ref) {
    }
    qui prend en paramètre un "a9", "c12"... en parsant ref pour séparer la lettre du nombre...


    Ensuite, je ne comprends pas bien le rapport avec l'ArrayList<Affaire> : si c'est un tableau de Affaire, alors au lieu de String[][] tableau=new String[][] tu fais Affaire[][] tableau = new Affaire[][]Ensuite, s'il s'agit de parcourir une ArrayList<Affaire> avec un Iterator, pour ranger les Affaire dans un tableau Affaire[][] où les cases sont référencées par des "a3, c5, f2, etc……", il te faut un moyen de déterminer la référence où va une affaire, et ensuite tu peux faire une méthode setAffaire(String ref, Affaire affaire) (dans la classe Grille, ou peu importe comment tu l'as appelée) qui traduit la référence en index de colonne et de ligne comme vu ci-dessus pour ranger l'instance de Affaire dans la bonne case du tableau.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2014
    Messages : 80
    Par défaut
    Merci beaucoup pour ta réponse, j'essayai d'implémenter le tableau directement dans la JSP, finalement la création d'une classe est surement une très bonne solution. merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2014
    Messages : 80
    Par défaut
    Finalement et en accord avec mon supérieur, j'ai implémenter un bête tableau Html qui parcoure l'arrayList.... Simple mais efficace
    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
     
    </tr>
    	<%
    		Locations loc;
    		for (int iLigne = 0; iLigne <= listeLocations.size(); iLigne++) {
    	%>
    		<tr>	
    	<%	
    		loc = (Locations)listeLocations.get(iLigne);
    		int inter = (loc.getCalculHFin() - loc.getCalculHDeb());
     
    		int numColEnCours = 0;
    		out.println("<td>" + loc.getNomSalle() +"</td>");
     
    		int NbrCol = 28 - inter;
     
    		for (int col = 0; col <= NbrCol; col++) {
    			if (col == loc.getCalculHDeb()) {
    				numColEnCours = inter;	
    				out.println("<td bgcolor=\"#CCCCFF\"  colspan=\""+ inter+ "\">loc.getNumAffaire() + " - " + loc.getNomAffaire()+ "</td>");
    				iLigne = iLigne + numColEnCours;
    		} else {
    				out.println("<td>&nbsp;</td>");
    				}
    			}
    		}
    	%>
    		</tr>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 18h31
  2. Tableau dynamique avec 2 ArrayList
    Par Sield dans le forum Struts 1
    Réponses: 1
    Dernier message: 08/08/2014, 14h04
  3. AFFICHER UN TABLEAU DYNAMIQUE
    Par ghassenus dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2002, 14h19
  4. [Kylix] tableau dynamique
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 31/10/2002, 08h57
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo