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

Java Discussion :

Séquencer affichage + gestion d'erreur


Sujet :

Java

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Points : 73
    Points
    73
    Par défaut Séquencer affichage + gestion d'erreur
    Bonjour,

    1) J'ai dans mon appli une fenêtre dans laquelle j'appelle plusieurs méthodes. J'appelle une méthode puis j'affiche les résultats avant de passer à l'appel de la méthode suivante et ainsi de suite. Mon problème est que dans ma fenêtre je ne vois toutes les réponses qu'une fois que toutes les méthodes ont été appellées et donc cela va à l'encontre d'un affichage séquentiel que j'aimerais obtenir.
    Code java : 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
    uneRecherche = new Recherche(PN.getText());
                    try {
                        uneRecherche.recherche("`Code Thomson`");
                        if(uneRecherche.getListeDevis().size()==0) {
                            uneRecherche.recherche("`Autre Code`");
                        }         
                    } catch (SQLException e) {
                        e.printStackTrace();
                        messageErreurs = "Le chemin spécifié n'est pas le bon.";
                    }         
     
                    /* effacement des champs et listes au cas où il n'y ait pas de résultat */
                    if(uneRecherche.getListeDevis().size()==0) {
                        listeAnnee.removeAllItems();
                        listeFiche.removeAllItems();
                        listeQte.removeAllItems();
                        champsAffaire.setText("");
                        champsCPP.setText("");
                    } else {
                        premierDevis();                        
                    }
                    uneRechercheStock = new RechercheStock();
                    try {
                        uneRechercheStock.rechercheStock(PN.getText(), "J:/4-Supply_Chain_Support/"+
                        "5_SUIVI ST/2_Sous Traitants/03 - ECT/5_Stock/demande sortie magasin IND.xls");
                        uneRechercheStock.rechercheStockECT(PN.getText(), listeS[0]);
                    } catch (BiffException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
     
                    /* effacement des champs au cas où il n'y ait pas de résultat */
                    if(uneRechercheStock.getStockSIB().size()==0) {
                        modele.setValueAt("", 0, 1);
                        modele.setValueAt("", 0, 2);
                        modele.setValueAt("", 0, 3);
                        modele.setValueAt("", 0, 4);
                        tableauStock.repaint();
                    } else {
                        indexStock = 0;
                        parcoursStock(indexStock);
                    }
     
                    /* effacement des champs au cas où il n'y ait pas de résultat */
                    if(uneRechercheStock.getStockECT().size()==0) {
                        modele.setValueAt("", 1, 1);
                        modele.setValueAt("", 1, 2);
                        modele.setValueAt("", 1, 3);
                        modele.setValueAt("", 1, 4);
                        tableauStock.repaint();
                    } else {
                        indexStockECT = 0;
                        parcoursStockECT(indexStockECT);
                    }

    Je suis en train de me documenter sur les threads mais la classe Tread peut-elle m'apporter une solution pour ce problème?

    2) De plus j'aimerais récupérer des erreurs. Par exemple sur la première méthode recherche(), s'il y a un problème dans la requete le dire à l'utilisateur, et pas seulement les erreurs de la console.
    D'ailleurs si j'ai une erreur sur la première méthode de recherche appellée le programme s'arrete. Il faudrait au contraire que cela continue sur les autres méthodes puisqu'au final, l'utilisateur aurait un message d'erreur pour ce qui n'a pas marché.

    Merci

  2. #2
    Membre actif Avatar de Mamypirate
    Homme Profil pro
    Samouraï
    Inscrit en
    Mai 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Samouraï
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 108
    Points : 211
    Points
    211
    Par défaut
    Ton problème vient peut-être du fait que tes méthodes sont appelées dans le constructeur de ta JFrame. Si c'est le cas, il faudrait que tu appels tes méthodes après la création et l'affichage de la JFrame.
    Après difficile à dire, le code que tu donnes n'est pas d'une grande aide

    Essai de nous en donner plus si je suis à côté de la plaque .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try {
    findSignature();
    } catch(InspirationNotFoundException e) {
    e.printStackTrace();
    }

  3. #3
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Salut,

    Si tu fais un traitement long et que tu veux afficher des resultats au fur et a mesure, regarde du coté de la classe SwingWorker, c'est la classe dediée pour ca. Et si tu as d'autres problemes, n'hesite pas, elle n'est pas super simple à prendre en mains

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Points : 73
    Points
    73
    Par défaut
    En fait mes méthodes ne sont pas appelées dans le constructeur mais dans un ActionListener. L'utilisateur saisie un numéro, et fait "entrer". Cela lance les différentes recherches:


    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
    public class PanneauPrincipal extends JPanel {
    .
    .
    .
    public class ActionEntrerListener implements ActionListener {
     
            /* (non-Javadoc)
             * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
             */
            @Override
            public void actionPerformed(ActionEvent evt) {
     
                if(evt.getSource()==champsPN) {
     
                    JTextField PN = null;
                    PN = (JTextField)evt.getSource();
                    /* création d'un produit */
                    prod = new Produit(PN.getText(), "", "");
                    uneRecherche = new Recherche(PN.getText());
                    try {
                        uneRecherche.recherche("`Code Thomson`");
                        if(uneRecherche.getListeDevis().size()==0) {
                            uneRecherche.recherche("`Autre Code`");
                        }         
                    } catch (SQLException e) {
                        e.printStackTrace();
                        messageErreurs = "Le chemin spécifié n'est pas le bon.";
                    }         
     
                    /* effacement des champs et listes au cas où il n'y ait pas de résultat */
                    if(uneRecherche.getListeDevis().size()==0) {
                        listeAnnee.removeAllItems();
                        listeFiche.removeAllItems();
                        listeQte.removeAllItems();
                        champsAffaire.setText("");
                        champsCPP.setText("");
                    } else {
                        premierDevis();          
                        existeResultat = true;
                    }
     
                    uneRechercheStock = new RechercheStock();
                    try {
                        uneRechercheStock.rechercheStock(PN.getText(), "J:/4-Supply_Chain_Support/"+
                        "5_SUIVI ST/2_Sous Traitants/03 - ECT/5_Stock/demande sortie magasin IND.xls");
                        uneRechercheStock.rechercheStockECT(PN.getText(), listeS[0]);
                    } catch (BiffException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
     
                    /* effacement des champs au cas où il n'y ait pas de résultat */
                    if(uneRechercheStock.getStockSIB().size()==0) {
                        modele.setValueAt("", 0, 1);
                        modele.setValueAt("", 0, 2);
                        modele.setValueAt("", 0, 3);
                        modele.setValueAt("", 0, 4);
                        tableauStock.repaint();
                    } else {
                        indexStock = 0;
                        parcoursStock(indexStock);
                        existeResultat = true;
                    }
            .
            .
            .
        }
    }

Discussions similaires

  1. [PDO] Gestion des erreurs, affichage de la requête
    Par pomme06 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 12/02/2011, 18h46
  2. Réponses: 5
    Dernier message: 11/09/2007, 13h42
  3. gestion d'erreur et de transactions....
    Par Dge dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 08/02/2006, 22h20
  4. [LG]tests pour la gestion d'erreur
    Par le 27 dans le forum Langage
    Réponses: 3
    Dernier message: 22/12/2003, 20h44
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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