Bonjour,

j'ai créé cette petite classe qui permet d'afficher des boites de messages pour l'utilisateur (équivalent MsgBox de VB).
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
public class BoitesMessages extends JFrame
{
 
private static final long serialVersionUID = 6159261813547522406L;
 
private int ReponseInt = -1 ;
private String ReponseString = null ;
 
public final static int BOITE_OK = 0 ;
public final static int BOITE_OUI_NON = 1 ;
public final static int BOITE_TEXTE = 2 ;
 
public BoitesMessages(int Type, String Message, String Titre)
	{
	switch ( Type )
		{
		case BOITE_OK : JOptionPane.showMessageDialog(this, Message, Titre, JOptionPane.WARNING_MESSAGE) ;
			break ;
		case BOITE_OUI_NON : ReponseInt = JOptionPane.showConfirmDialog(this, Message, Titre, JOptionPane.YES_NO_OPTION) ;
			break ;
		case BOITE_TEXTE : ReponseString = JOptionPane.showInputDialog(this, Message) ;
			break ;
		default : throw new Error("Type non géré : " + Type) ;
		}
	}
 
public int getReponseInt()
	{
	return ReponseInt ;
	}
 
public String getReponseString()
	{
	return ReponseString ;
	}
}


Mais j'ai un souci :
- Lorsque je mets une série de boites dans un main pour les tester, tout ce passe normalement, elles s'affichent comme il se doit.
- Lorsque je mets des boites dans mon soft afin de signaler à l'utilisateur ce qu'il doit faire ou lui signifier ses erreurs, seule la première boite s'affiche correctement, les suivantes n'ont que le titre et pas le contenu.
Par exemple dans le code qui suit, on clique successivement sur les boutons, mais seule la première boite affiche le contenu de son message ("Message1", ...) et les autres boites sont vides.
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
	BoutonOuvrirDossiers = new JButton("Choisir dossier images") ;
	BoutonOuvrirDossiers.addActionListener( new ActionListener()
		{
		public void actionPerformed(ActionEvent e)
			{
			if ( (DossierImages = FichiersDossiersIHM.ChoisirDossier((new File("")).getAbsolutePath(), false)) == null ) return ;
			fenetre2D = new Fenetre2D_Selections(1000, 800, "Fenetre de sélection d'un noyau") ;
			TexteDapi.setEnabled(false) ;
			TexteFitc.setEnabled(false) ;
			TexteTritc.setEnabled(false) ;
			BoutonOuvrirDossiers.setEnabled(false) ;
			BoutonSegmenter.setEnabled(true) ;
			ChargerUneImage(TexteDapi.getText(), TexteFitc.getText(), TexteTritc.getText()) ;
			new BoitesMessages(BoitesMessages.BOITE_OK, "Message1\n" + "Message1\n" + "Message1\n" + "Message1\n", "Titre1") ;
			}
		}) ;
 
	BoutonSegmenter = new JButton("Segmenter") ;
	BoutonSegmenter.setEnabled(false) ;
	BoutonSegmenter.addActionListener( new ActionListener()
		{
		public void actionPerformed(ActionEvent e)
			{
			TexteDapi.setEnabled(false) ;
			TexteFitc.setEnabled(false) ;
			TexteTritc.setEnabled(false) ;
			fenetre2D.FenetreImage.setVisible(false) ;
			IhmFenetre2D.setVisible(false) ;
			BoutonOuvrirDossiers.setEnabled(false) ;
			BoutonSegmenter.setEnabled(false) ;
 
			ChargerImages(TexteDapi.getText(), TexteFitc.getText(), TexteTritc.getText(), fenetre2D.Selection.firstElement()) ;
			fenetreDapi.Canvas.addKeyListener(new KeyListener()
				{
				public void keyPressed(KeyEvent ke)
					{
					dapi = true ;
					fitc = false ;
					}
 
				public void keyReleased(KeyEvent ke) {}
				public void keyTyped(KeyEvent ke) {}
				}) ;
			fenetreFitc.Canvas.addKeyListener(new KeyListener()
				{
				public void keyPressed(KeyEvent me)
					{
					fitc = true ;
					dapi = false ;
					}
 
				public void keyReleased(KeyEvent e) {}
				public void keyTyped(KeyEvent e) {}
				}) ;
			BoutonReconstruire.setEnabled(true) ;
			new BoitesMessages(BoitesMessages.BOITE_OK, "Message2\n" + "Message2\n" + "Message2\n" + "Message2\n", "Titre2") ;
			}
		}) ;
 
	BoutonReconstruire = new JButton("Reconstruire") ;
	BoutonReconstruire.setEnabled(false) ;
	BoutonReconstruire.addActionListener( new ActionListener()
		{
		public void actionPerformed(ActionEvent e)
			{
			String nomfenetre = null ;
			if ( dapi & !fitc ) nomfenetre = "Dapi" ;
			else if ( !dapi && fitc ) nomfenetre = "Fitc" ;
			else
				{
				new BoitesMessages(BoitesMessages.BOITE_OK, "Aucune fenetre selectionnée.", "Erreur") ;
				return ;
				}
			BoitesMessages boite = new BoitesMessages(BoitesMessages.BOITE_OUI_NON, "Vous souhaitez segmenter le noyau à partir du masque :\n" +
				"Fênetre => " + nomfenetre + "\n" +
				"Image => " + (dapi & !fitc ? fenetreDapi.getFenetreCourante() : fenetreFitc.getFenetreCourante()), "Confirmation") ;
			}
		}) ;
Est ce que quelqu'un comprends ce qu'il se passe ?
Qu'est ce que je n'ai pas saisi ?

Merci par avance...