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

avec Java Discussion :

Les exceptions en Java


Sujet :

avec Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut Les exceptions en Java
    Bonjour,

    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    public class BoutonImg extends JButton implements MouseListener
    {
    	private String name;
        private Image img;
     
        public BoutonImg( String  strImg )
        {
                super(strImg);
     
                this.name = strImg;
     
                try {
                    img = ImageIO.read(new File("RED.jpg")); 
     
     
                    } 
                catch (IOException e)     // Icon icon
                   {
                       e.printStackTrace();
                   }
     
           this.addMouseListener(this);
        }
     
        public void paintComponent(Graphics g)
        {
     
                Graphics2D g2d = (Graphics2D)g;
                g2d.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
                g2d.setColor(Color.WHITE);
                g2d.drawString(this.name, this.getWidth() / 2 - (this.getWidth() / 2/4), (this.getHeight() / 2) + 5);
     
        }
     
     
        public void mouseClicked(MouseEvent event)   //Pas utile d'utiliser cette méthode ici   
        {                                
        }
     
        public void mouseEntered(MouseEvent event)   // Nous changeons la couleur du boutton en "JAUNE" on met la souris dessus 
     
        {
                try 
                {
                   img = ImageIO.read(new File("YELLOW.jpg"));
                } 
                catch (IOException e)
                {                  
                    e.printStackTrace();
                }
     
        }
     
        public void mouseExited(MouseEvent event)   //Nous changeons la couleur du boutton en "ORANGE" quand on quitte le bouton
        {                                                              
                try 
                {
                   img = ImageIO.read(new File("ORANGE.jpg"));
                }
                catch (IOException e) 
                {                  
                    e.printStackTrace();
                }            
        }
     
        public void mousePressed(MouseEvent event) //Nous changeons la couleur du boutton en "BLEU" quand on clic du botton gauche de la sours
        {                                           
                try 
                {
                   img = ImageIO.read(new File("BLUE.jpg"));
                } 
                catch (IOException e) 
                {                  
                   e.printStackTrace();
                }
     
        }
     
        public void mouseReleased(MouseEvent event) // Nous changeons le fond en orangé pour notre image 
        {                                           // lorsqu'on relâche le clic 
                                                    // avec le fichier fondBoutonHover.png                        
                try 
                {
                   img = ImageIO.read(new File("ORANGE.jpg"));
                } 
                catch (IOException e) 
                {                    
                    e.printStackTrace();
                }               
        }       
     
    }
    j'aimerais savoir :

    1- pourquoi on a utilisé l'exception " IOException e" quel est le risque qd on change la couleur de notre bouton (je ne vois pas trop son utilité ici ?) une explication sera apprécié..

    Merci d'avance .

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 072
    Points : 7 974
    Points
    7 974
    Par défaut
    Bah ... a quoi ca sert ? Si tu l'enleves ca compile ?

    Le risques c'est qu'il ne trouve pas le fichier RED.jpg (orange et les autres) c'est tout. D'ou l'exception que ImageIO px renvoyer pour indiquer qu'il y'a eu un probleme de lecture dans ce cas ci.

    Comme l'indique d'ailleurs tres bien http://download.oracle.com/javase/6/...(java.io.File)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Bah ... a quoi ca sert ? Si tu l'enleves ca compile ?

    Le risques c'est qu'il ne trouve pas le fichier RED.jpg (orange et les autres) c'est tout. D'ou l'exception que ImageIO px renvoyer pour indiquer qu'il y'a eu un probleme de lecture dans ce cas ci.

    Comme l'indique d'ailleurs tres bien http://download.oracle.com/javase/6/...(java.io.File)

    Merci pour la réponse

    mais pourquoi qd je les enleve j'ai une erreur et le programme ne compilera pas ?

    comment je doit les enlever ... juste pour voir c'est tout

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 072
    Points : 7 974
    Points
    7 974
    Par défaut
    Citation Envoyé par zpico Voir le message
    Merci pour la réponse

    mais pourquoi qd je les enleve j'ai une erreur et le programme ne compilera pas ?

    comment je doit les enlever ... juste pour voir c'est tout
    Bah non il ne compilera pas, il va se plaindre qu'il manque les catch et try pour cet exception. Donc tu es forcé de les laisser (et donc de réagir en consequence en affichat un message par exemple pour indiquer qu'il trouve pas l'image)

    Les exceptions permettent dans ce cas d'eviter de faire faire des erreurs par la suite au programme (genre des nullpointeur exception car il n'a pas sur charger une ressource)

    Sinon aussi je px te conseiller de charger tes 4 images dans une methode que tu appele dans le constructeur (pour eviter un chargement au moment du clique, et aussi verifier qu'au moment du clique tu vas pas creer la dite exception ce qui te posera plus de probleme a mon avis).

    Et pq pas faire des static que tu n'initialize qu'une seul fois (si tu utilise 150 fois tes boutons ca t'evitera de charger 4*150 images qui sont les memes).

    Genre ceci (qui a surement des erreurs infâmes) :

    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
    public class BoutonImg extends JButton implements MouseListener
    {
    	private String			name;
    	private Image			img;
    	private static Image	img1;
    	private static Image	img2;
    	private static Image	img3;
    	private static Image	img4;
     
    	public BoutonImg(String strImg) throws IOException
    	{
    		super(strImg);
     
    		this.name = strImg;
     
    		if (img1 == null) // On a dja charge ces images la pour un autre bouton ou pas ?
    		{
    			try
    			{
    				img1 = ImageIO.read(new File("RED.jpg"));
    				img2 = ImageIO.read(new File("bLEU.jpg"));
    				img3 = ImageIO.read(new File("violet.jpg"));
    				img4 = ImageIO.read(new File("rose.jpg"));
    				img = img1;
    			} catch (IOException e) // Icon icon
    			{
    				e.printStackTrace();
    				throw (e);
    			}
    		}
     
    		this.addMouseListener(this);
    	}
     
    	public void paintComponent(Graphics g)
    	{
    		Graphics2D g2d = (Graphics2D) g;
    		g2d.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
    		g2d.setColor(Color.WHITE);
    		g2d.drawString(this.name, this.getWidth() / 2 - (this.getWidth() / 2 / 4), (this.getHeight() / 2) + 5);
     
    	}
     
    	public void mouseClicked(MouseEvent event) //Pas utile d'utiliser cette méthode ici   
    	{
    	}
     
    	public void mouseEntered(MouseEvent event) // Nous changeons la couleur du boutton en "JAUNE" on met la souris dessus 
     
    	{
    		img = img2;
    		repaint();
     
    	}
     
    	public void mouseExited(MouseEvent event) //Nous changeons la couleur du boutton en "ORANGE" quand on quitte le bouton
    	{
    		img = img3;
    		repaint();
    	}
     
    	public void mousePressed(MouseEvent event) //Nous changeons la couleur du boutton en "BLEU" quand on clic du botton gauche de la sours
    	{
    		img = img4;
    		repaint();
    	}
     
    	public void mouseReleased(MouseEvent event) // Nous changeons le fond en orangé pour notre image 
    	{ // lorsqu'on relâche le clic 
    		// avec le fichier fondBoutonHover.png                        
    		img = img1;
    		repaint();
    	}
     
    }
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Bonjour,

    Une bonne gestion des exceptions signe souvent du code de qualité. A l'inverse un débutant trouvera toujours ça rébarbatif.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,

    Citation Envoyé par zpico Voir le message
    Merci pour la réponse

    mais pourquoi qd je les enleve j'ai une erreur et le programme ne compilera pas ?

    comment je doit les enlever ... juste pour voir c'est tout
    ça ne compilera pas parce que la méthode read de ImageIO lance (throw) (et déclarer sur la méthode par throws IOEXception) l'exception IOException quand il y aura une erreur de lecture. Ainsi tu es obligé de rattraper cet exception par le bloc try catch ou en déclarant throws IOException sur la méthode laquelle tu va appeler read mais les 2 à la fois n'est pas nécessaire.

    A+.

Discussions similaires

  1. Les exceptions en java
    Par jeedev dans le forum Langage
    Réponses: 2
    Dernier message: 13/05/2009, 13h30
  2. les exceptions en java
    Par Delnir dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 16/02/2009, 17h16
  3. [Debug] Rediriger les exceptions JAVA dans un log
    Par matt8-5 dans le forum Logging
    Réponses: 3
    Dernier message: 25/01/2008, 12h34
  4. Les exceptions en java
    Par Dev_info dans le forum Langage
    Réponses: 5
    Dernier message: 24/05/2007, 17h02
  5. les exceptions java
    Par nadir2 dans le forum Langage
    Réponses: 5
    Dernier message: 14/02/2007, 18h05

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