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

Documents Java Discussion :

lignes et colonnes de tableau Java


Sujet :

Documents Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut lignes et colonnes de tableau Java
    Bonjour à tous,

    j'ai un tableau qui demande juste le nombre des colonnes et mettre automatiquement une seule ligne,
    j'aimerai que ce tableau demande le nombre des colonnes et aussi le nombre des lignes
    public void insertNewTable(final int colCount, final int ligCount)
    et merci d'avance.





    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    public void insertNewTable(final int colCount) {
        final int selectionStart = getSelectionStart();
        final int start = selectionStart;
        final StringWriter sw = new StringWriter();
        final SHTMLDocument doc = (SHTMLDocument) getDocument();
        final SHTMLWriter w = new SHTMLWriter(sw, doc);
        // some needed constants
        final String table = HTML.Tag.TABLE.toString();
        final String tr = HTML.Tag.TR.toString();
        final String td = HTML.Tag.TD.toString();
        final String th = HTML.Tag.TH.toString();
        final String p = HTML.Tag.P.toString();
        final boolean insertPlainTable = !Util.preferenceIsTrue("table.insertStyle", "true");
        final boolean insertTableHeader = Util.preferenceIsTrue("table.insertHeader");
        try {
            // the attribute set to use for applying attributes to tags
            final SimpleAttributeSet tableAttributeSet = new SimpleAttributeSet();
            // build table attribute
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.WIDTH, DEFAULT_TABLE_WIDTH);
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.BORDER_STYLE, "solid");
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.BORDER_TOP_WIDTH, "0");
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.BORDER_RIGHT_WIDTH, "0");
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.BORDER_BOTTOM_WIDTH, "0");
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.BORDER_LEFT_WIDTH, "0");
            tableAttributeSet.addAttribute(HTML.Attribute.BORDER, "0");
            w.writeStartTag(table, insertPlainTable ? null : tableAttributeSet);
            // get width of each cell according to column count
            // build cell width attribute
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.WIDTH,
                Integer.toString(100 / colCount) + Util.pct);
            tableAttributeSet.addAttribute(HTML.Attribute.VALIGN, DEFAULT_VERTICAL_ALIGN);
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.BORDER_TOP_WIDTH, "1");
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.BORDER_RIGHT_WIDTH, "1");
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.BORDER_BOTTOM_WIDTH, "1");
            Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.BORDER_LEFT_WIDTH, "1");
            final SimpleAttributeSet pSet = new SimpleAttributeSet();
            Util.styleSheet().addCSSAttribute(pSet, CSS.Attribute.MARGIN_TOP, "1");
            Util.styleSheet().addCSSAttribute(pSet, CSS.Attribute.MARGIN_RIGHT, "1");
            Util.styleSheet().addCSSAttribute(pSet, CSS.Attribute.MARGIN_BOTTOM, "1");
            Util.styleSheet().addCSSAttribute(pSet, CSS.Attribute.MARGIN_LEFT, "1");
            tableAttributeSet.removeAttribute(HTML.Attribute.BORDER);
            if (insertTableHeader) {
                w.writeStartTag(tr, null);
                for (int i = 0; i < colCount; i++) {
                    w.writeStartTag(th, insertPlainTable ? null : tableAttributeSet);
                    w.writeStartTag(p, insertPlainTable ? null : pSet);
                    w.writeEndTag(p);
                    w.writeEndTag(th);
                }
                w.writeEndTag(tr);
            }
            w.writeStartTag(tr, null);
            for (int i = 0; i < colCount; i++) {
                w.writeStartTag(td, insertPlainTable ? null : tableAttributeSet);
                w.writeStartTag(p, insertPlainTable ? null : pSet);
                w.writeEndTag(p);
                w.writeEndTag(td);
            }
            w.writeEndTag(tr);
            w.writeEndTag(table);
            // read table html into document
            Element para = doc.getParagraphElement(selectionStart);
            if (para == null) {
                throw new Exception("no text selected");
            }
            for (Element parent = para.getParentElement(); !parent.getName().equalsIgnoreCase(HTML.Tag.BODY.toString())
                    && !parent.getName().equalsIgnoreCase(HTML.Tag.TD.toString()); para = parent, parent = parent
                .getParentElement()) {
                ;
            }
            if (para != null) {
                try {
                    doc.startCompoundEdit();
                    doc.insertBeforeStart(para, sw.getBuffer().toString());
                }
                catch (final Exception e) {
                    Util.errMsg(null, e.getMessage(), e);
                }
                finally {
                    doc.endCompoundEdit();
                }
                //      w.write(para);
                //doc.replaceHTML(para, 1, sw.getBuffer().toString());
            }
        }
        catch (final Exception ex) {
            Util.errMsg(null, ex.getMessage(), ex);
        }
        select(start, start);
    }

  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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    La partie du code qui génère une ligne est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    w.writeStartTag(tr, null);
    for (int i = 0; i < colCount; i++) {
        w.writeStartTag(td, insertPlainTable ? null : tableAttributeSet);
        w.writeStartTag(p, insertPlainTable ? null : pSet);
        w.writeEndTag(p);
        w.writeEndTag(td);
    }
    w.writeEndTag(tr);
    Il suffit de répéter ça dans une boucle for(int j = 0; i<ligCount; j++) { }...
    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
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut
    Merci pour votre réponse, je n'arrive pas à fonctionner la demande de nombre des ligne je vous montre que ce que j'ai déjà fait au niveau de l'appel de cette fonction.

    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
    public void actionPerformed(final ActionEvent ae) {
                final Frame parent = JOptionPane.getFrameForComponent(panel);
                Object input = null;
                /* code ajouter par moi*/
                Object input1 = null;
                /*--------------------*/
                final boolean showPopup = Util.preferenceIsTrue("table.popupBeforeInserting", "true");
                if (showPopup) {
                    input = Util.nameInput(parent, "3", "\\d+", "insertTableTitle", "insertTableMsg");
     
                    /* code ajouter par moi*/
                    input1 = Util.nameInput(parent, "4", "\\d+", "insertTableTitle", "Nombre des lignes");
                    /*--------------------*/
                }
                if (input != null || input1 != null || !showPopup) {
                    final int choice = input != null ? Integer.parseInt(input.toString()) : 3;
                    /* code ajouter par moi*/
                    final int choice1 = input1 != null ? Integer.parseInt(input1.toString()) : 3;
                    /*--------------------*/
                    if (choice > 0 && choice1 > 0) {
                        panel.getSHTMLEditorPane().insertNewTable(choice,choice1);
                    }
                }
                panel.updateActions();
            }
    le boucle ajouté comme vous m'avez dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     for (int j = 0; j< ligCount; j++) {
                    w.writeStartTag(tr, null);
                    for (int i = 0; i < colCount; i++) {
                        w.writeStartTag(td, insertPlainTable ? null : tableAttributeSet);
                        w.writeStartTag(p, insertPlainTable ? null : pSet);
                        w.writeEndTag(p);
                        w.writeEndTag(td);
                    }
                    w.writeEndTag(tr);
                }
                w.writeEndTag(table);

  4. #4
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Dali29 Voir le message
    je n'arrive pas à fonctionner la demande de nombre des ligne
    C'est-à-dire ? Mise à part qu'utiliser 2 dialogues différents pour demander nombres de ligne et nombre de colonnes, c'est pas terrible ergonomiquement parlant, je ne vois pas dans ton code ce qui ne fonctionnerait pas (s'il fonctionnait avant, puisque Util.nameInput() je ne peux que deviner ce que ça fait).
    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.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut
    Util.nameInput c'est de faire une fenêtre qui permet le saisie de nombre des lignes ou colonnes
    mais il prend pas en compte la résultat de nombre des lignes saisie, la résultat de taleau est toujours la même avec nombre des colonnes saisie et une seule ligne
    Nom : inputNbreligne.PNG
Affichages : 325
Taille : 5,1 Ko

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut
    joel.drigo j'ai trouvé que cette fonction est appelé dans une autre fichier donc j'ai juste ajouté le deuxième paramètre

    Mais est ce que vous savez comment ajuster la taille des colonnes ? j'ai trouvé cette solution mais je sais pas comment l'adapter sur mon code.

    montableau.getColumnModel().getColumn(colCount).setMinWidth(...); // largeur mini
    montableau.getColumnModel().getColumn(colCount).setWidth(...);// largeur [elle doit être <largeur fenêtre]
    montableau.getColumnModel().getColumn(colCount).setMaxWidth(...);//largeur max

  7. #7
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Il y a deux aspects :

    1. le dimensionnement automatique et le redimensionnement
      qui se paramètre avec JTable.setAutoResizeMode().
    2. les largeurs de colonnes elle-même, qui se paramètrent effectivement par
      • setMinWidth pour la largeur mini
      • setWidth pour la largeur
      • setMaxWidth pour la largeur maxi

      Méthodes qu'on appelle sur une instance de TableColumn, qu'on obtient par le modèle de colonnes.

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      TableColumnModel columnModel = table.getColumnModel(); 
      TableColumn column0 = columnModel.getColumn(0);
      column0.setWidth(100); // largeur de 100 px pour la colonne 1
      Code à placer après avoir créer l'instance de JTable, affecter le modèle de table, et que le modèle de colonnes soit créé (il y a un mode pour ça, par défaut à true. Voir setAutoCreateColumnsFromModel, getAutoCreateColumnsFromModel, createDefaultColumnsFromModel de JTable).

    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.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut
    Merci bien,

    et pour ce code ça sera faisable de faire ajuster les colonnes ou il faut d'abord passer par un Jtable ?

  9. #9
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je pensais que tu parlais de JTable, puisque tu montrais du code de JTable. Si tu parles de ton tableau html du début, ça n'a rien à voir, ni avec les JTable ni avec même Java. Le dimensionnement des tables html ça se fait via les styles css. Et ça dépend du niveau de html et du composant qui fait le rendu. Si tu utilises un JEditorPane, il faudra utiliser l'attribut style de la balise td (tu ne pourras pas utiliser de css autant que je me souvienne).
    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.

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut
    D'accord, donc ça sera pas faisable avec ce tableau que je l'ai ?

  11. #11
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Si, si, simplement pas avec un fichier css à part. D'ailleurs c'est déjà fait ici en partie : Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.WIDTH, Integer.toString(100 / colCount) + Util.pct);; (ici la même largeur pour toutes les colonnes). Et il faut voir la taille de la table aussi. Bref, tout ce qu'on devrait faire pour styler une table en HTML/CSS.
    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.

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut
    Merci joel.drigo,

    Mais pour ajuster la taille des colonnes est ce qu'on a une fonction spécifique pour les codes html et css

  13. #13
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    A vérifier si le SHTMLWriter (classe que je ne connais pas) duplique bien le AttributSet lorsqu'on crée un tag, c'est Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.WIDTH, largeurdecolonne ), à appeler pour chaque td, donc dans la boucle sur les colonnes.
    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.

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut
    SHTMLWriter c'est un fichier où l'on fait appeler .

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    /*
     * SimplyHTML, a word processor based on Java, HTML and CSS
     * Copyright (C) 2002 Ulrich Hilger
     * Copyright (C) 2006 Dimitri Polivaev
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * as published by the Free Software Foundation; either version 2
     * of the License, or (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, write to the Free Software
     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
     */
    package com.lightdev.app.shtm;
     
    import java.io.IOException;
    import java.io.StringWriter;
    import java.io.Writer;
    import java.util.Enumeration;
     
    import javax.swing.text.AttributeSet;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.Document;
    import javax.swing.text.Element;
    import javax.swing.text.ElementIterator;
    import javax.swing.text.MutableAttributeSet;
    import javax.swing.text.SimpleAttributeSet;
    import javax.swing.text.StyleConstants;
    import javax.swing.text.html.CSS;
    import javax.swing.text.html.HTML;
    import javax.swing.text.html.HTMLDocument;
    import javax.swing.text.html.HTMLWriter;
     
    /**
     * FixedHTMLWriter
     *
     * 
     */
    public class SHTMLWriter extends HTMLWriter {
        private Element element;
        private Writer writer = null;
        private boolean replaceEntities;
        private boolean inTextArea;
        //final private MutableAttributeSet oConvAttr  = new SimpleAttributeSet();
        //final private MutableAttributeSet convertedAttributeSet  = new SimpleAttributeSet();
        private boolean inPre;
     
        public SHTMLWriter(final Writer w, final HTMLDocument doc, final int pos, final int len) {
            super(w, doc, pos, len);
            writer = w;
        }
     
        /** Constructs the SHTMLWriter with a new StringWriter. See also the method
         * getWrittenString. */
        public SHTMLWriter(final HTMLDocument doc) {
            this(new StringWriter(), doc, 0, doc.getLength());
        }
     
        public SHTMLWriter(final Writer w, final HTMLDocument doc) {
            this(w, doc, 0, doc.getLength());
        }
     
        protected ElementIterator getElementIterator() {
            if (element == null) {
                return super.getElementIterator();
            }
            return new ElementIterator(element);
        }
     
        protected void output(final char[] chars, final int start, final int length) throws IOException {
            if (replaceEntities) {
                if (chars[start] == ' ') {
                    chars[start] = '\u00A0';
                }
                final int last = start + length - 1;
                for (int i = start + 1; i < last; i++) {
                    if (chars[i] == ' ' && (chars[i - 1] == '\u00A0' || chars[i + 1] == ' ')) {
                        chars[i] = '\u00A0';
                    }
                }
                //			if(chars[last] == ' '){
                //				chars[last] = '\u00A0';
                //			}
            }
            super.output(chars, start, length);
        }
     
        protected void startTag(final Element elem) throws IOException, BadLocationException {
            if (matchNameAttribute(elem.getAttributes(), HTML.Tag.PRE)) {
                inPre = true;
            }
            super.startTag(elem);
        }
     
        protected void endTag(final Element elem) throws IOException {
            if (matchNameAttribute(elem.getAttributes(), HTML.Tag.PRE)) {
                inPre = false;
            }
            super.endTag(elem);
        }
     
        protected void text(final Element elem) throws BadLocationException, IOException {
            replaceEntities = !inPre;
            super.text(elem);
            replaceEntities = false;
        }
     
        protected void textAreaContent(final AttributeSet attr) throws BadLocationException, IOException {
            inTextArea = true;
            super.textAreaContent(attr);
            inTextArea = false;
        }
     
        public void write() throws IOException, BadLocationException {
            replaceEntities = false;
            super.write();
        }
     
        protected void writeLineSeparator() throws IOException {
            final boolean pre = replaceEntities;
            replaceEntities = false;
            super.writeLineSeparator();
            replaceEntities = pre;
        }
     
        protected void indent() throws IOException {
            if (inTextArea) {
                return;
            }
            final boolean pre = replaceEntities;
            replaceEntities = false;
            super.indent();
            replaceEntities = pre;
        }
     
        /**
         * Iterates over the
         * Element tree and controls the writing out of
         * all the tags and its attributes.
         *
         * @exception IOException on any I/O error
         * @exception BadLocationException if pos represents an invalid
         *            location within the document.
         *
         */
        synchronized void write(Element element) throws IOException, BadLocationException {
            this.element = element;
            try {
                write();
            }
            catch (final BadLocationException e) {
                element = null;
                throw e;
            }
            catch (final IOException e) {
                element = null;
                throw e;
            }
        }
     
        /**
         * invoke HTML creation for all children of a given element.
         *
         * @param elem  the element which children are to be written as HTML
         */
        public void writeChildElements(final Element parentElement) throws IOException, BadLocationException {
            Element childElement; //Not necessarily a paragraph element.
            for (int i = 0; i < parentElement.getElementCount(); i++) {
                childElement = parentElement.getElement(i);
                write(childElement);
            }
        }
     
        protected boolean inRange(final Element next) {
            final Document document = next.getDocument();
            if (document instanceof SHTMLDocument
                    && next.getStartOffset() >= ((SHTMLDocument) document).getLastDocumentPosition()) {
                return false;
            }
            final int startOffset = getStartOffset();
            final int endOffset = getEndOffset();
            if ((next.getStartOffset() >= startOffset && (next.getStartOffset() < endOffset) || next.getEndOffset() - 1 == endOffset)
                    || (startOffset >= next.getStartOffset() && startOffset < next.getEndOffset())) {
                return true;
            }
            return false;
        }
     
        /**
         * Create an older style of HTML attributes.  This will 
         * convert character level attributes that have a StyleConstants
         * mapping over to an HTML tag/attribute.  Other CSS attributes
         * will be placed in an HTML style attribute.
         */
        private static void convertStyleToHTMLStyle(final AttributeSet source, final MutableAttributeSet target) {
            if (source == null) {
                return;
            }
            final Enumeration sourceAttributeNames = source.getAttributeNames();
            String value = "";
            while (sourceAttributeNames.hasMoreElements()) {
                final Object sourceAttributeName = sourceAttributeNames.nextElement();
                if (sourceAttributeName instanceof CSS.Attribute) {
                    // default is to store in a HTML style attribute
                    if (value.length() > 0) {
                        value += "; ";
                    }
                    value += sourceAttributeName + ": " + source.getAttribute(sourceAttributeName);
                }
                else {
                    target.addAttribute(sourceAttributeName, source.getAttribute(sourceAttributeName));
                }
            }
            if (value.length() > 0) {
                target.addAttribute(HTML.Attribute.STYLE, value);
            }
        }
     
        /* (non-Javadoc)
         * @see javax.swing.text.html.HTMLWriter#writeAttributes(javax.swing.text.AttributeSet)
         */
        protected void writeAttributes(final AttributeSet attributeSet) throws IOException {
            final Object nameTag = (attributeSet != null) ? attributeSet.getAttribute(StyleConstants.NameAttribute) : null;
            final Object endTag = (attributeSet != null) ? attributeSet.getAttribute(HTML.Attribute.ENDTAG) : null;
            // write no attributes for end tags
            if (nameTag != null && endTag != null && (endTag instanceof String) && ((String) endTag).equals("true")) {
                return;
            }
            if (attributeSet instanceof Element) {
                final Element element = (Element) attributeSet;
                if (element.isLeaf() || element.getName().equalsIgnoreCase("p-implied")) {
                    super.writeAttributes(attributeSet);
                    return;
                }
            }
            //convertedAttributeSet.removeAttributes(convertedAttributeSet);
            final MutableAttributeSet convertedAttributeSet = new SimpleAttributeSet();
            SHTMLWriter.convertStyleToHTMLStyle(attributeSet, convertedAttributeSet);
            final Enumeration attributeNames = convertedAttributeSet.getAttributeNames();
            while (attributeNames.hasMoreElements()) {
                final Object attributeName = attributeNames.nextElement();
                if (attributeName instanceof HTML.Tag || attributeName instanceof StyleConstants
                        || attributeName == HTML.Attribute.ENDTAG) {
                    continue;
                }
                write(" " + attributeName + "=\"" + convertedAttributeSet.getAttribute(attributeName) + "\"");
            }
        }
     
        /**
         * write an element and all its children. If a given element is reached,
         * writing stops with this element. If the end element is a leaf,
         * it is written as the last element, otherwise it is not written.
         *
         * @param e  the element to write including its children (if any)
         * @param end  the last leaf element to write or the branch element
         * to stop writing at (whatever applies)
         */
        private void writeElementsUntil(final Element e, final Element end) throws IOException, BadLocationException {
            if (e.isLeaf()) {
                write(e);
            }
            else {
                if (e != end) {
                    startTag(e);
                    final int childCount = e.getElementCount();
                    int index = 0;
                    while (index < childCount) {
                        writeElementsUntil(e.getElement(index), end); // drill down in recursion
                        index++;
                    }
                    endTag(e);
                }
            }
        }
     
        /**
         * write elements and their children starting at a
         * given element until a given element is reached.
         * The end element is written as the last element,
         * if it is a leaf element.
         *
         * @param startElement  the element to start writing with
         * @param endElement  the last element to write
         */
        void write(final Element startElement, final Element endElement) throws IOException, BadLocationException {
            final Element parentElement = startElement.getParentElement();
            final int count = parentElement.getElementCount();
            int i = 0;
            Element e = parentElement.getElement(i);
            while (i < count && e != startElement) {
                e = parentElement.getElement(i++);
            }
            while (i < count) {
                writeElementsUntil(e, endElement);
                e = parentElement.getElement(i++);
            }
        }
     
        /* (non-Javadoc)
         * @see javax.swing.text.html.HTMLWriter#startTag(javax.swing.text.Element)
         */
        void writeStartTag(final Element elem) throws IOException, BadLocationException {
            // TODO Auto-generated method stub
            super.startTag(elem);
        }
     
        /* (non-Javadoc)
         * @see javax.swing.text.html.HTMLWriter#endTag(javax.swing.text.Element)
         */
        void writeEndTag(final Element elem) throws IOException {
            // TODO Auto-generated method stub
            super.endTag(elem);
        }
     
        void writeEndTag(final String elementName) throws IOException {
            indent();
            write('<');
            write('/');
            write(elementName);
            write('>');
            writeLineSeparator();
        }
     
        void writeStartTag(final String elementName, final AttributeSet attributes) throws IOException {
            indent();
            write('<');
            write(elementName);
            if (attributes != null) {
                writeAttributes(attributes);
            }
            write('>');
            writeLineSeparator();
        }
     
        public void write(final String string) {
            try {
                writer.write(string);
            }
            catch (final IOException ex) {
            }
        }
     
        public String toString() {
            if (writer instanceof StringWriter) {
                final StringWriter stringWriter = (StringWriter) writer;
                return stringWriter.getBuffer().toString();
            }
            return super.toString();
        }
     
        /** Gets the written string if the writer is a StringWriter, null otherwise. */
        String getWrittenString() {
            if (writer instanceof StringWriter) {
                final StringWriter stringWriter = (StringWriter) writer;
                return stringWriter.getBuffer().toString();
            }
            return null;
        }
     
        void removeLastWrittenNewline() {
            if (writer instanceof StringWriter) {
                final StringWriter stringWriter = (StringWriter) writer;
                int charIdx = stringWriter.getBuffer().length();
                while (stringWriter.getBuffer().charAt(--charIdx) <= 13) {
                    stringWriter.getBuffer().deleteCharAt(charIdx);
                }
            }
        }
    }

  15. #15
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ok, c'est basé sur javax.swing.text.html.HTMLWriter donc c'est bon.
    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.

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut
    joel.drigo, donc il faut modifier le fichier SHTMLWritter ou la fonction insertNewTable par ce que je n'ai pas compris comment je vais ajuster la taille des colonnes.

  17. #17
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    1. Il faut déjà avoir un moyen de paramétrer les tailles des colonnes pour les passer en paramètre de la méthode insertNewTable
      1. ça pourrait être un tableau :
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        public void insertNewTable(final int ligCount, final int colCount, final int[] colSizes) {
        ou
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        public void insertNewTable(final int ligCount, final int colCount, final Integer[] colSizes) {
        qui permettrait d'avoir des valeurs null pour des colonnes sans taille (donc qui fonctionne comme actuellement, en se répartissant sur la place inoccupée).
      2. ou une map
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        1
        2
        public void insertNewTable(final int ligCount, final int colCount, final Map<Integer, Integer> colSizes) {
        }
      3. ou autre...

    2. ensuite il faut tenir compte de la taille dans la boucle, par exemple, avec le tableau de int (int[]) :
      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
      for (int j = 0; j< ligCount; j++) {
                      w.writeStartTag(tr, null);
                      for (int i = 0; i < colCount; i++) {
                          if ( insertPlainTable ) {
                              w.writeStartTag(td, null);
                          }
                          else {
                              Util.styleSheet().addCSSAttribute(tableAttributeSet, CSS.Attribute.WIDTH, colSize[i]+"px"); // ici, pour exemple, une taille en px
                              w.writeStartTag(td, tableAttributeSet);
                          }
                          w.writeStartTag(p, insertPlainTable ? null : pSet);
                          w.writeEndTag(p);
                          w.writeEndTag(td);
                      }
                      w.writeEndTag(tr);
                  }

      Il faudra éventuellement aussi ajouter les attributs suivants pour éviter des colonnes flexibles ou les débords (à vérifier si c'est supporté, les constants CSS.Attribute.WHITE_SPACE et CSS.Attribute.DISPLAY existant, mais pas de constante pour overflow, donc ce n'est pas gagné) :
      Code css : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      overflow: hidden;
      display: inline-block;
      white-space: nowrap;
    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.

  18. #18
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut
    Merci bien joel.drigo, par contre les constants CSS.Attribute.WHITE_SPACE et CSS.Attribute.DISPLAY n'existent pas.
    Alors il faut les ajouter ?

  19. #19
    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 : 54
    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
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    C'est bien de la classe javax.swing.text.html.CSS qu'il s'agit ? En quelle version travailles-tu ? Parce que l'attribut existait déjà en Java 5, et je n'irais pas jusqu'à vérifier s'il existait déjà en 1.4 (probablement, vu que cette classe n'a probablement pas évolué depuis).
    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.

  20. #20
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 51
    Points : 3
    Points
    3
    Par défaut
    Joel Drigo, javax.swing.text.html.CSS est déjà importé,.
    je travaille en Java 2 Edition 1.4 (J2SE)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] transformer ligne en colonne dans tableau après regroupement
    Par yadou dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/07/2007, 15h27
  2. Insertion dynamique de lignes en colonne dans un tableau
    Par lodan dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/03/2007, 07h18
  3. Tableau - détails sur lignes et colonnes
    Par BiM dans le forum BIRT
    Réponses: 2
    Dernier message: 05/07/2006, 11h51
  4. Supprimer toutes les lignes et colonnes d'un tableau
    Par pekka77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 11h26
  5. Tableau 5 lignes * 3 colonnes
    Par slackjayo dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 05/04/2005, 11h27

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