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 :

Boites de messages perso, Bug que je ne comprends pas


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut Boites de messages perso, Bug que je ne comprends pas
    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...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    lorsque le contenu des fênetres ne s'affichent plus, il y a en parallèle une fênetre JOGL (Java OpenGL) qui consomme presque 100% du CPU.
    Est ce que ça pourrait expliquer que l'affichage ne se fasse ? J'ai un doute car je ne vois pas pourquoi... et j'ai laissé passé quelques minutes pour voir si l'affichage se faisait en retard et rien ne se passe.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

Discussions similaires

  1. Un message d'erreur que je ne comprends pas
    Par KOUTO dans le forum Bases de données
    Réponses: 7
    Dernier message: 22/01/2009, 17h25
  2. Message d'erreur que je ne comprends pas
    Par yvkoe dans le forum Langage
    Réponses: 4
    Dernier message: 24/11/2007, 10h27
  3. J'ai un message d'erreur que je ne comprend pas
    Par Jonathan Raucy dans le forum IHM
    Réponses: 2
    Dernier message: 24/09/2007, 17h14
  4. Bug que je ne comprend pas . . .
    Par méphistopheles dans le forum C
    Réponses: 3
    Dernier message: 15/01/2007, 20h16
  5. [Débutant] Message d'erreur que je ne comprends pas
    Par Le Furet dans le forum Langage
    Réponses: 2
    Dernier message: 25/02/2006, 17h37

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