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

AWT/Swing Java Discussion :

[Stratégie] Erreurs: faire apparaître une fenêtre


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Points : 19
    Points
    19
    Par défaut [Stratégie] Erreurs: faire apparaître une fenêtre
    Salut à tous,

    Une petite question de stratégie/conception:

    Dans un logiciel, j'ai pas mal de gestion d'erreurs. Attention, je ne parle pas uniquement d'exceptions mais aussi d'erreurs de l'utilisateur.
    Suivant l'erreur ou l'exception, je voudrais faire apparaître une fenêtre avec un texte précis correspondant à l'erreur, et un ou deux boutons style ok/cancel.

    Pour optimiser ces opérations, j'ai pensé faire un ErrorManager. Cette classe ferait apparaître une fenêtre, avec le(s) bouton(s).
    Un exemple de classe:

    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
     
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    public class ErrorManager extends JFrame {
     
    //----------------------------
    //  Attributes
    //----------------------------
     
        private JButton okBtn;
        private JLabel label;
        private JPanel mainPanel;
     
    //----------------------------
    //  Constructors
    //----------------------------
     
        public ErrorManager() {
            this.getContentPane().setLayout(new BorderLayout());
            this.getContentPane().add("Center",mainPanel);
     
            //TODO afficher la fenêtre au centre de la fenêtre parente
            //this.setLocation(200, 200);
            this.setLocationRelativeTo(this);
     
            setSize(600, 100);
            setResizable(false);
            setVisible(false);
            setTitle("Erreur");
     
     
            okBtn.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    setVisible(false);
                }
            });
        }
     
     
    //----------------------------
    //  Methods
    //----------------------------
     
     
        public void throwError(String s) {
            label.setText(s);
            this.setVisible(true);
     
        }
    }
    L'idée est de créer un objet ErrorManager, et de lui demander via la méthode "throwError(String s)" d'afficher une fenêtre avec le texte de l'erreur.
    Lorsque l'on clique ok, on fait disparaître la fenêtre.

    Lorsque l'on veut utiliser cette classe, on peut faire ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     errorM.throwError("Champs vides, impossible d'enregistrer");
    Cette solution me convient moyennement. On ne détruit pas vraiment la fenêtre, et elle pourrait apparaître plus tard avec un autre message. Faut-il donc en faire un Singleton et utiliser toujours le même objet?

    J'aimerai vos critiques, mais ne soyez pas trop méchants
    Merci de votre aide…

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut
    Bonjour,

    S'il s'agit juste d'afficher du texte, avec un bouton "OK", tu peux tout simplement lancer une JOptionPane.

    Nicolas

  3. #3
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Hello,

    Je ne connaissais pas ce Pane…

    Merci beaucoup, ça va être sacrément plus simple!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    le JOptionPane semble etre la meilleur solution.
    Tu peux par exemple l'appeler dans ta methode throwError de cette facon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JOptionPane.showMessageDialog(frame,message,titre,JOptionPane.ERROR_MESSAGE);
    De cette facon, la fenêtre est totalement détruite à sa fermeture sans que tu n'ai rien à faire.
    Et tu peux même personnaliser l'icone facilement.
    Mess with the best, die like the rest!

  5. #5
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Parfait…

    Depuis le post de Nicolas_75, je suis en train d'étudier la javadoc du JOptionPane et c'est exactement ce qu'il me fallait!

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

Discussions similaires

  1. Faire apparaître une fenêtre en Bash
    Par enicnath dans le forum Linux
    Réponses: 10
    Dernier message: 09/08/2010, 23h22
  2. Faire apparaître une fenêtre pendant 30 secondes
    Par vg-matrix dans le forum Débuter
    Réponses: 4
    Dernier message: 18/06/2008, 19h53
  3. [PHP-JS] Faire apparaître une fenêtre d'alerte
    Par -Neo- dans le forum Langage
    Réponses: 7
    Dernier message: 03/07/2007, 14h41
  4. Réponses: 2
    Dernier message: 13/12/2004, 15h16
  5. [Plugin / Graphique] Faire apparaitre une fenêtre?
    Par relivio dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 31/03/2004, 19h10

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