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

Interfaces Graphiques en Java Discussion :

changement dynamique des images en java


Sujet :

Interfaces Graphiques en Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut changement dynamique des images en java
    bonsoir;
    j'ai essayé de faire un programme qui fait à chaque fois à une image mais cet appel est conditionné : je m'explique j'ai dans une frame une ensemble des images qui representent des postes dans une societe,mon prog lit à partir du 1er fichier(test1:ou se fait la configuration des postes )et prend le nom et l'identifiant de chaque poste puis il passe au 2 eme fichier(log2:ou il y a l'etat des postes) et il lit l'etat et selon les données il fait l'appel de l'image
    voile le code que j'ai fait:
    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
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    import java.awt.Graphics;
    import java.awt.Point;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.awt.image.BufferedImage;
    import java.awt.image.Raster;
    import java.io.File;
    import java.io.IOException;
    import java.io.BufferedReader;
    import java.io.FileReader;
    import javax.imageio.ImageIO;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import java.util.StringTokenizer;
    public class Teste extends JFrame implements Runnable {
     
        private static final long    serialVersionUID    = 4983727800375272097L;
       int g=0;
       int id=0;
       BufferedImage img = null;
        public Teste(int id) {
        	this.id=id;
        	System.out.println(id);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setSize(800, 600);
            setLocationRelativeTo(null);
     
     
     
        }
    public void run()
    {
    	  try {
                img = ImageIO.read(new File("c:/pc.jpeg"));//image a l'etat initiale 
            } catch (IOException e) {
                e.printStackTrace();
            }
            setContentPane(new MyCanvas(img));
            setVisible(true);
    }
        public static void main(String[] args) { int id=0;
            Teste v=new Teste(0);
            v.changeetat(id);
        }
     
        private class MyCanvas extends JComponent implements MouseListener {
     
            private static final long    serialVersionUID    = 8845913940083986438L;
     
            private BufferedImage        buff                = null;
     
            private Raster                data                = null;
     
            public MyCanvas(BufferedImage img) {
                this.addMouseListener(this);
                this.buff = img;
                this.data = img.getData();
            }
     
            public void paintComponent(Graphics g) {
     
                g.drawImage(buff, 0, 0, buff.getWidth(), buff.getHeight(), this);
            }
     
            private void testLocation(Point mouse, String text) {
     
                if(data.getBounds().contains(mouse))
                  {
                  	//Thread po=new Thread(new Interfacepc(id));c'est une classe ou il y a des autres interfaces
                  	System.out.println("image"+id);
                  	//po.start();
                    g++;
                    //po.setVisible(true);
                  }
     
     
            }
     
            public void mouseClicked(MouseEvent e) {
     
                Point p = e.getPoint();
                testLocation(p, "mouseClicked");
            }
     
            public void mousePressed(MouseEvent e) {
     
                Point p = e.getPoint();
                testLocation(p, "mousePressed");
            }
            public void mouseReleased(MouseEvent e) {
     
                Point p = e.getPoint();
                testLocation(p, "mouseReleased");
            }
     
            public void mouseEntered(MouseEvent e) { }
            public void mouseExited(MouseEvent e) { }
     
        }
     
     
     
     
    public  void changeetat( int id){
     
     
    	String ligne,ligne1;
    	String motA="";
    	 String mot="";
    	 String mott="";
    	String mot1="";
    	String mot2="";
    	String mot3="";
    	String mot4="";
    	String mot5="";
    	 String com="";
    	  String com1="";
    		try{
     
     
             BufferedImage img = null;
              BufferedReader fin1 = new BufferedReader(new FileReader("Test1.txt"));//le fichier test1 : fichier texte ou il y a 
                                                                      //la configuration de lhote c comme une basse de donnée
     
               	while((ligne1=fin1.readLine())!=null)
    		{ StringTokenizer st1=new StringTokenizer(ligne1,"  ,.;: ");
     
     
             while(st1.hasMoreTokens()) 
             {mot=st1.nextToken();
               if(mot.equals("host_name"))
               {  com=st1.nextToken();
                System.out.println(com);
                 }
                 ligne1 +=ligne1+"\n";
                if(mot.equals("HOST_ID"))
                 { com1=st1.nextToken();
     
    		BufferedReader fin = new BufferedReader(new FileReader("log2.txt"));//le log file c est un fichier texte ou il y a l'etat des
    		                                                        //des hotes et des services
    		while((ligne=fin.readLine())!=null)
    		{StringTokenizer st=new StringTokenizer(ligne,"  ,.;: ");
     
                 System.out.println(ligne);
     
            while(st.hasMoreTokens()) 
             {                        
                 motA=st.nextToken();//motA contient [124542204] (exemple)
                  mott=st.nextToken();//mott contient CURREN
                  mot1=st.nextToken();//mot1 contient soit "HOST" soit "SERVICE"
                   mot2=st.nextToken();//mot2 contient "STAT"
     
                   mot3=st.nextToken();//le nom du host
                   mot4=st.nextToken();//ici si mot1= host alor mot4=etat(up or down)et si mot1=service alor mot4=nom de service
     
                    mot5=st.nextToken();//ici si mot1= host alor mot4=hard ou soft et si mot1=service alor mot4=etat du service(ok,warning,critial,unknown)
                if(mot1.equals("host"))
                 { if(mot3.equals(com))
                    {  if(mot4.equals("DOWN"))
                       {
                           try {
                img = ImageIO.read(new File("c:/down.jpeg"));
            } catch (IOException e) {e.printStackTrace();}
     
                 }
                 else if(mot4.equals("UP"))
                           {     try {
                img = ImageIO.read(new File("c:/up.jpeg"));
            } catch (IOException e) {e.printStackTrace();}
     
              }
            }
              else if(mot4.equals("UP")&&(mot1.equals("SERVICE"))&&(mot3.equals("mot3")))//on peut avoir une  hote est up mais elle a un service 
                                                                                         // qui ne fonctionne pas          
              {if((mot5.equals("CRIICAL"))||(mot5.equals("UNKNOWN"))||(mot5.equals("WARNING")))
     
                           {     try {
                img = ImageIO.read(new File("c:/panne.jpeg"));
            } catch (IOException e) {e.printStackTrace();}
     
     
     
     
            }
        }
     
    }     
    }
     
     
     
     
    }
    }
    }
     }        
     
     
     
     
            //fin.close();
     
            fin1.close();
     
    }
        catch(IOException e)
        {System.out.println(e.getMessage());}
    }
    }
    et aussi une idee sur le fichier test1
    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
    define host{
    host_name     host4
    alias        wind
    ip_address    192.168.12.3 
    HOST_ID     1
    max_check_attemps 5      
    normal_check_interval 10     
    notification_interval 10    
    notification_period   3   
    first_notification_delay  2    
    }
    define host{
    host_name      host2
    alias        
    ip_address   192.168.12.5 
    HOST_ID     1
    max_check_attemps 3      
    normal_check_interval 23     
    notification_interval   23  
    notification_period      4
    first_notification_delay   2
    encore une petite idee sur le fichier(log2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [213546845] CURRENT HOST STATE;host4;up;soft;
    [213546845] CURRENT HOST STATE;host2;down;hard;
    [213546845] CURRENT SERVICE STATE;host4;load;ok;soft;
    [213546845] CURRENT SERVICE STATE;host4;log;critical;soft;
    [213546845] CURRENT SERVICE STATE;host2;load;ok;soft
    1erement ce programme ne fonctionne pas malgre que la compilation est zero erreur?
    en plus,le systeme à chaque fois me donne des nouvelles lignes qui s'ajoutent
    au fichier log donc j'ai sai pa comment je veux faire pour que à chaque fois j'aurais l'etat de mon poster par le changement des images!!! s'il vous plait aider à resoudre ce grand probleme j'ai pas trouvé une solution !!!
    merci d'avance

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    bonjour;
    s'il vous plait aider moi à resoudre ce probleme

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    lors de l'execution j'avais une exception :
    0
    host4
    [213546845] CURRENT SERVICE STATE;host4;up;soft;
    Exception in thread "main" java.util.NoSuchElementException
    at java.util.StringTokenizer.nextToken(StringTokenizer.java:332)
    at Teste.changeetat(Teste.java:149)
    at Teste.main(Teste.java:43)
    que dois-je faire!!!!????
    merci pour aider!!!

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Combien d'images veux tu afficher sur ton écran, une seule, plusieurs?
    Accessoirement tu utilises dans la classe MyCanvas un variable de type BufferedImage du nom de buff qui stocke l'image originelle et n'est jamais mis à jour.

    De fait il est normal que ton image ne change pas, en effet la variable buff de la classe MyCanvas n'est jamais mise à jour.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    bon cette classe sera appelée dans une autre classe ou le nombre des images est variable c'est à dire je peux ajouter à chaque fois une nouvelle image desque j'ajoute une nouvelle poste dans la societé !!!!
    merci de m'aider!!!!

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par sinok Voir le message
    Accessoirement tu utilises dans la classe MyCanvas un variable de type BufferedImage du nom de buff qui stocke l'image originelle et n'est jamais mis à jour.

    De fait il est normal que ton image ne change pas, en effet la variable buff de la classe MyCanvas n'est jamais mise à jour.
    Tu n'as lu que le début de ma réponse.

    Bref il te faut prévoir une méthode setImage dans ta classe MyCanvas permettant de changer l'image de celui ci.

    Accessoirement tu vas très vite rencontrer des problèmes de freeze de ton application car tu fais des opérations lourdes (lecture de fichier, lecture d'image) dans le thread graphique.

    Un peu de lecture te fera du bien: http://gfx.developpez.com/tutoriel/j...ing-threading/

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    slt;
    je m'excuse mais je suis encore debutante en java et j'ai pas bien compris ta reponse ,bon j'ai vu le lien mais je sais pas comment vraiment corriger mon probleme est ce que tu peux toi meme corriger ma faute ou meme explique moi plus pour que je peux avancer !!!!
    merci !!!

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    slt,
    j'ai essayé de changer à chaque fois le bloc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      try {
                img = ImageIO.read(new File("c:/pc.jpeg"));//image a l'etat initiale 
            } catch (IOException e) {
                e.printStackTrace();
            }
    par
    Image icone = Toolkit.getDefaultToolkit().getImage("up.jpeg");
    setIconImage(icone);
    mais toujours j'avais la meme resultat et la mm exception

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    host4
    [213546845] CURRENT SERVICE STATE;host4;up;soft;
    Exception in thread "main" java.util.NoSuchElementException
    at java.util.StringTokenizer.nextToken(StringTokenizer.java:332)
    at Teste.changeetat(Teste.java:149)
    at Teste.main(Teste.java:43)
    aider moi à trouver la bonne reponse s'il vous plait!!!

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 34
    Points : 55
    Points
    55
    Par défaut
    [213546845] CURRENT SERVICE STATE;host4;up;soft;
    Exception in thread "main" java.util.NoSuchElementException
    at java.util.StringTokenizer.nextToken(StringTokenizer.java:332)
    at Teste.changeetat(Teste.java:149)
    at Teste.main(Teste.java:43)[/code]

    aider moi à trouver la bonne reponse s'il vous plait!!!
    L'exception indique que le problème survient dans le StringTokenizer. A priori cela n'a pas de lien avec le chargement des images.

    Quelques conseils pour avoir une réponse à une question technique dans un forum:
    - décrire précisément le problème en bon français (la première phrase de ton premier message est d'ailleurs incompréhensible)
    - isoler le code problématique (peu de gens ont envie de parcourir plusieurs dizaines de lignes de code pas très clair)
    - lire la documentation, parcourir les forums et les blogs avant de poser des questions (cela permet de mieux cerner le problème et c'est particulièrement utile quand on est débutant...)

    /AR

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    bonjour;
    desole, c'est quoi qui n'est pas claire !!!!

  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    slt;
    il n'y a pas quelqu'un qui a une idée pour m'aider!!!

Discussions similaires

  1. [2.5.2] Changement dynamique des titres axes
    Par lazarel dans le forum BIRT
    Réponses: 1
    Dernier message: 14/04/2010, 10h40
  2. [WD11] changement dynamique des gabarits
    Par thomasarnelmadiso dans le forum WinDev
    Réponses: 0
    Dernier message: 25/07/2009, 22h45
  3. traiter des images en java
    Par nonosa dans le forum 2D
    Réponses: 5
    Dernier message: 28/05/2007, 18h23
  4. Réponses: 1
    Dernier message: 20/09/2006, 19h51
  5. changement dynamique d'image en swing
    Par boudou dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 02/04/2006, 12h05

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