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:
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.
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); } }
Lorsque l'on clique ok, on fait disparaître la fenêtre.
Lorsque l'on veut utiliser cette classe, on peut faire ainsi:
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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part errorM.throwError("Champs vides, impossible d'enregistrer");
J'aimerai vos critiques, mais ne soyez pas trop méchants
Merci de votre aide…
Partager