Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2788 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  changement dynamique des images java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

changement dynamique des images java

n°2000304
touma10
Posté le 09-06-2010 à 17:40:03  profilanswer
 

slt,
j'ai essayé de faire un programme qui fait un appel à 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:
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());}
}
}
 voila une partie de mon fichier log2:
[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
aider moi s'il vous plait à corriger cette faute!!!
merci d'avance!!!

mood
Publicité
Posté le 09-06-2010 à 17:40:03  profilanswer
 

n°2000307
touma10
Posté le 09-06-2010 à 17:43:55  profilanswer
 

lors de l'execution j'avais cette exception
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!!!!????

n°2000319
phnatomass
Je m'empare de ton esprit !!
Posté le 09-06-2010 à 18:25:13  profilanswer
 

Au lieu d'utiliser un StringTokenizer utilise String.split();
Ainsi tu pourras vérifier que la taille du tableau retourné correspond au nombre d'éléments que t'attends.
Sinon utilise la méthode  countTokens() de ton StringTokenizer


Message édité par phnatomass le 09-06-2010 à 18:29:31
n°2000371
touma10
Posté le 09-06-2010 à 21:37:16  profilanswer
 

salut;
merci "phnatomass" pour votre réponse
bah j'ai pa compri bien votre reponse,je suis encore debutante en java, merci de me corriger vous mm ma fonction si ce possible sinon s'il vous plait essayer de m'expliquer !!!
merci d'avance!!
 

n°2000406
Deamon
Posté le 10-06-2010 à 09:47:34  profilanswer
 

Tu fais des .nextToken() à la suite sans vérifier qu'il y en a réellement d'autres. Donc forcément si tu as 3 éléments et tu fais 4 .nextToken() et bien ça plante avec NoSuchElementException.

 

D'ailleurs je vois pas l'intérêt du while(st.hasMoreTokens()) puisque tu récupères tous les éléments de la ligne à l'intérieur donc dans un cas normal si j'ai bien compris il devrait passer qu'une seule fois dedans.

 

Et mets ton code entre les balise [ code=java] [ /code] (sans les espaces) pour que ce soit lisible car là...


Message édité par Deamon le 10-06-2010 à 09:50:39
n°2000421
phnatomass
Je m'empare de ton esprit !!
Posté le 10-06-2010 à 10:30:24  profilanswer
 

Code :
  1. package test;
  2. import java.awt.image.BufferedImage;
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.IOException;
  7. import java.util.StringTokenizer;
  8. import javax.imageio.ImageIO;
  9. public class Machin {
  10. public void changeetat(int id) {
  11.  String ligne, ligne1;
  12.  String motA = "";
  13.  String mot = "";
  14.  String com = "";
  15.  String com1 = "";
  16.  try {
  17.   BufferedImage img = null;
  18.   // Le fichier test1 : fichier texte ou il y a
  19.   // La configuration de lhote c comme une basse de donnée
  20.   BufferedReader fin1 = new BufferedReader(new FileReader("Test1.txt" ));
  21.   while ((ligne1 = fin1.readLine()) != null) {
  22.    StringTokenizer st1 = new StringTokenizer(ligne1, "  ,.;: " );
  23.    if (st1.hasMoreTokens()) {
  24.     mot = st1.nextToken();
  25.     if (mot.equals("host_name" ) && st1.hasMoreTokens()) {
  26.      com = st1.nextToken();
  27.      System.out.println(com);
  28.     }
  29.     ligne1 += ligne1 + "\n";
  30.     if (mot.equals("HOST_ID" ) && st1.hasMoreTokens()) {
  31.      com1 = st1.nextToken();
  32.      // le log file c est un fichier texte ou il y a l'etat
  33.      // des
  34.      // des hotes et des services
  35.      BufferedReader fin = new BufferedReader(new FileReader("log2.txt" ));
  36.      while ((ligne = fin.readLine()) != null) {
  37.       String mott = "";
  38.       String mot1 = "";
  39.       String mot2 = "";
  40.       String mot3 = "";
  41.       String mot4 = "";
  42.       String mot5 = "";
  43.       StringTokenizer st = new StringTokenizer(ligne, "  ,.;: " );
  44.       System.out.println(ligne);
  45.       if (st.hasMoreTokens()) {
  46.        // motA contient [124542204] (exemple)
  47.        motA = st.nextToken();
  48.        if (st.hasMoreElements()) {
  49.         // mott contient CURREN
  50.         mott = st.nextToken();
  51.        }
  52.        if (st.hasMoreElements()) {
  53.         // mot1 contient soit "HOST" soit "SERVICE"
  54.         mot1 = st.nextToken();
  55.        }
  56.        if (st.hasMoreElements()) {
  57.         //  mot2 contient "STAT"
  58.         mot2 = st.nextToken();
  59.        }
  60.        if (st.hasMoreElements()) {
  61.         // le nom du host
  62.         mot3 = st.nextToken();
  63.        }
  64.        if (st.hasMoreElements()) {
  65.         // Ici si mot1= host alor mot4=etat(up or
  66.         // down)et si mot1=service alor mot4=nom de
  67.         // service
  68.         mot4 = st.nextToken();
  69.        }
  70.        if (st.hasMoreElements()) {
  71.         // ici si mot1= host alor mot4=hard ou soft
  72.         // et si mot1=service alor mot4=etat du
  73.         // service(ok,warning,critial,unknown)
  74.         mot5 = st.nextToken();
  75.        }
  76.        if (mot1.equals("host" )) {
  77.         if (mot3.equals(com)) {
  78.          if (mot4.equals("DOWN" )) {
  79.           try {
  80.            img = ImageIO.read(new File("c:/down.jpeg" ));
  81.           } catch (IOException e) {
  82.            e.printStackTrace();
  83.           }
  84.          } else if (mot4.equals("UP" )) {
  85.           try {
  86.            img = ImageIO.read(new File("c:/up.jpeg" ));
  87.           } catch (IOException e) {
  88.            e.printStackTrace();
  89.           }
  90.          }
  91.         } else // on peut avoir une hote est up
  92.           // mais elle a un service qui ne
  93.           // fonctionne pas
  94.         if (mot4.equals("UP" ) && (mot1.equals("SERVICE" )) && (mot3.equals("mot3" ))) {
  95.          if ((mot5.equals("CRITICAL" )) || (mot5.equals("UNKNOWN" ))
  96.            || (mot5.equals("WARNING" )))
  97.          {
  98.           try {
  99.            img = ImageIO.read(new File("c:/panne.jpeg" ));
  100.           } catch (IOException e) {
  101.            e.printStackTrace();
  102.           }
  103.          }
  104.         }
  105.        }
  106.       }
  107.      }
  108.     }
  109.    }
  110.   }
  111.   // fin.close();
  112.   fin1.close();
  113.  } catch (IOException e) {
  114.   System.out.println(e.getMessage());
  115.  }
  116. }
  117. }

n°2000482
touma10
Posté le 10-06-2010 à 11:58:26  profilanswer
 

bonjour;
merci bien pour votre aide "phnatomass,Deamon"
lorsque j'ai essayé d'integrer la fonction dans ma classe cv ca marcha avec 0 erreur pas des exception et j'avais l'affichage de mon frame mais toujours il n'y a des images!!???  
voila tous le code:

Code :
  1. import java.awt.image.BufferedImage;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.util.StringTokenizer;
  7. import javax.swing.JComponent;
  8. import javax.swing.JFrame;
  9. import javax.imageio.ImageIO;
  10. import java.awt.Graphics;
  11. import java.awt.Point;
  12. import java.awt.event.MouseEvent;
  13. import java.awt.event.MouseListener;
  14. import java.awt.image.BufferedImage;
  15. import java.awt.image.Raster;
  16. public class Machin extends JFrame {
  17.    private static final long    serialVersionUID    = 4983727800375272097L;
  18.   int g=0;
  19.   int id=0;
  20.   BufferedImage img = null;
  21.    public Machin(int id) {
  22.        this.id=id;
  23.        System.out.println(id);
  24.        setDefaultCloseOperation(EXIT_ON_CLOSE);
  25.        setSize(800, 600);
  26.        setLocationRelativeTo(null);
  27.  
  28.  
  29.  
  30.    }
  31. public void run()
  32. {
  33.       try {
  34.            img = ImageIO.read(new File("c:/pc.jpeg" ));
  35.        } catch (IOException e) {
  36.            e.printStackTrace();
  37.        }
  38.        setContentPane(new MyCanvas(img));
  39.        setVisible(true);
  40. }
  41.    public static void main(String[] args) {
  42.        int d=0;
  43.       Machin v= new Machin(d);
  44.       v.setVisible(true);
  45.       v.changeetat(d);
  46.    }
  47.  
  48.    private class MyCanvas extends JComponent implements MouseListener {
  49.  
  50.        private static final long    serialVersionUID    = 8845913940083986438L;
  51.  
  52.        private BufferedImage        buff                = null;
  53.  
  54.        private Raster                data                = null;
  55.  
  56.        public MyCanvas(BufferedImage img) {
  57.            this.addMouseListener(this);
  58.            this.buff = img;
  59.            this.data = img.getData();
  60.        }
  61.  
  62.        public void paintComponent(Graphics g) {
  63.  
  64.            g.drawImage(buff, 0, 0, buff.getWidth(), buff.getHeight(), this);
  65.        }
  66.  
  67.        private void testLocation(Point mouse, String text) {
  68.  
  69.            if(data.getBounds().contains(mouse))
  70.              {
  71.                  //Thread po=new Thread(new Interfacepc(id));
  72.                  System.out.println("image"+id);
  73.                  //po.start();
  74.                g++;
  75.                //po.setVisible(true);
  76.              }
  77.  
  78.  
  79.        }
  80.  
  81.        public void mouseClicked(MouseEvent e) {
  82.  
  83.            Point p = e.getPoint();
  84.            testLocation(p, "mouseClicked" );
  85.        }
  86.  
  87.        public void mousePressed(MouseEvent e) {
  88.  
  89.            Point p = e.getPoint();
  90.            testLocation(p, "mousePressed" );
  91.        }
  92.        public void mouseReleased(MouseEvent e) {
  93.  
  94.            Point p = e.getPoint();
  95.            testLocation(p, "mouseReleased" );
  96.        }
  97.  
  98.        public void mouseEntered(MouseEvent e) { }
  99.        public void mouseExited(MouseEvent e) { }
  100.  
  101.    }
  102.  
  103.  
  104. public void changeetat(int id) {
  105.  
  106.  String ligne, ligne1;
  107.  String motA = "";
  108.  String mot = "";
  109.  
  110.  String com = "";
  111.  String com1 = "";
  112.  
  113.  try {
  114.  
  115.   BufferedImage img = null;
  116.   // Le fichier test1 : fichier texte ou il y a
  117.   // La configuration de lhote c comme une basse de donnée
  118.  
  119.   BufferedReader fin1 = new BufferedReader(new FileReader("c:/Test.txt" ));
  120.  
  121.   while ((ligne1 = fin1.readLine()) != null) {
  122.    StringTokenizer st1 = new StringTokenizer(ligne1, "  ,.;: " );
  123.  
  124.    if (st1.hasMoreTokens()) {
  125.     mot = st1.nextToken();
  126.     if (mot.equals("host_name" ) && st1.hasMoreTokens()) {
  127.      com = st1.nextToken();
  128.      System.out.println(com);
  129.     }
  130.     ligne1 += ligne1 + "\n";
  131.     if (mot.equals("HOST_ID" ) && st1.hasMoreTokens()) {
  132.      com1 = st1.nextToken();
  133.      // le log file c est un fichier texte ou il y a l'etat
  134.      // des
  135.      // des hotes et des services
  136.      BufferedReader fin = new BufferedReader(new FileReader("c:/log.txt" ));
  137.  
  138.      while ((ligne = fin.readLine()) != null) {
  139.       String mott = "";
  140.       String mot1 = "";
  141.       String mot2 = "";
  142.       String mot3 = "";
  143.       String mot4 = "";
  144.       String mot5 = "";
  145.       StringTokenizer st = new StringTokenizer(ligne, "  ,.;: " );
  146.  
  147.       System.out.println(ligne);
  148.  
  149.       if (st.hasMoreTokens()) {
  150.        // motA contient [124542204] (exemple)
  151.       motA = st.nextToken();
  152.        if (st.hasMoreElements()) {
  153.        // mott contient CURREN
  154.         mott = st.nextToken();
  155.        }
  156.        if (st.hasMoreElements()) {
  157.         // mot1 contient soit "HOST" soit "SERVICE"
  158.         mot1 = st.nextToken();
  159.        }
  160.        if (st.hasMoreElements()) {
  161.         //  mot2 contient "STAT"
  162.         mot2 = st.nextToken();
  163.        }
  164.        if (st.hasMoreElements()) {
  165.         // le nom du host
  166.         mot3 = st.nextToken();
  167.        }
  168.        if (st.hasMoreElements()) {
  169.         // Ici si mot1= host alor mot4=etat(up or
  170.         // down)et si mot1=service alor mot4=nom de
  171.         // service
  172.         mot4 = st.nextToken();
  173.        }
  174.       if (st.hasMoreElements()) {
  175.         // ici si mot1= host alor mot4=hard ou soft
  176.         // et si mot1=service alor mot4=etat du
  177.         // service(ok,warning,critial,unknown)
  178.         mot5 = st.nextToken();
  179.        }
  180.  
  181.        if (mot1.equals("host" )) {
  182.         if (mot3.equals(com)) {
  183.          if (mot4.equals("DOWN" )) {
  184.           try {
  185.           img = ImageIO.read(new File("c:/down.jpeg" ));
  186.           } catch (IOException e) {
  187.            e.printStackTrace();
  188.           }
  189.  
  190.          } else if (mot4.equals("UP" )) {
  191.           try {
  192.            img = ImageIO.read(new File("c:/up.jpeg" ));
  193.           } catch (IOException e) {
  194.            e.printStackTrace();
  195.           }
  196.  
  197.         }
  198.  
  199.        } else // on peut avoir une hote est up
  200.           // mais elle a un service qui ne
  201.           // fonctionne pas
  202.         if (mot4.equals("UP" ) && (mot1.equals("SERVICE" )) && (mot3.equals("mot3" ))) {
  203.          if ((mot5.equals("CRITICAL" )) || (mot5.equals("UNKNOWN" ))
  204.            || (mot5.equals("WARNING" )))
  205.  
  206.          {
  207.           try {
  208.            img = ImageIO.read(new File("c:/panne.jpeg" ));
  209.           } catch (IOException e) {
  210.           e.printStackTrace();
  211.           }
  212.  
  213.          }
  214.         }
  215.  
  216.       }
  217.       }
  218.  
  219.     }
  220.     }
  221.    }
  222.   }
  223.  
  224.   // fin.close();
  225.  
  226.   fin1.close();
  227.  
  228.  } catch (IOException e) {
  229.   System.out.println(e.getMessage());
  230.  }
  231. }
  232. }


Message édité par touma10 le 10-06-2010 à 12:05:29
n°2000671
touma10
Posté le 10-06-2010 à 20:27:06  profilanswer
 

salut
je vous explique
cette classe sera appelle dans une autre classe à l'aide d'une boutton mais je veux enlever la fonction "void run" je l'ai mis juste pour tester si le prog se fonctionne ou pas !!!  
ce programme lit d'un fichier texte (log2) qui est changeable cad à chaque fois on aura d'ajout des ligne au cour du temps  
vraiment je n'ai sai  pas comment dois_je faire je suis entrain de realiser un projet qui il faut le rendre ce samedi et je suis encore bloqué dans cette etape !!
sil'vous plait aider moi à trouver une solution à ce programme
merci

n°2000733
touma10
Posté le 11-06-2010 à 02:29:03  profilanswer
 

bonsoir
j'ai essayé de re-compiler mon programme ok j'avais l'affichage de l'image et le programme lit de deux fichiers mais le changement des images ne se réalise pas s'il vous plait aider à trouver la solution !!!

n°2001195
touma10
Posté le 12-06-2010 à 22:28:48  profilanswer
 

bonsoir
s'il vous plait moi à trouver la bonne réponse c'est très important pour moi ça entre dans mon projet!!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  changement dynamique des images java

 

Sujets relatifs
[resolu] GWT et imageenregistrement des images dans une JFrame java
Diapo+Transparence d'imagesStocker images et .zip dans une BD via PHP
Help sur des connaissances particulières en JAVA (pour un stage)Convertir un tableau Java en JavaScript
Java et OpenGl[R/Java/C++] Utiliser le moteur de rendu graphique R dans une appli
Selection d'images dans document word 
Plus de sujets relatifs à : changement dynamique des images java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR