Partage
  • Partager sur Facebook
  • Partager sur Twitter

Applet +image non visible

Image visible avec AppletViewer

Sujet résolu
    20 novembre 2010 à 15:20:49

    Bonjour à tous,
    Ma question est simple comment fait-on pour insérer une image dans une applet?

    j'ai trouvé un exemple simple d'applet avec une image:


    import java.awt.Graphics; // Pour l'objet Graphics passé en paramètre de la méthode paint()
        import java.awt.Image; // Pour l'objet Image que nous allons utiliser
         import javax.swing.JApplet; // La classe JApplet
        
        
      public class FirstApplet extends JApplet {
        
         private Image image = null; // A la construction de notre objet, image est initialisé à null
        
        public void init() {
         image = getImage(getCodeBase(), "java.gif"); // Instanciation de l'objet image
         }
        
         public void paint(Graphics g) {
         g.drawImage(image, 0, 0, this); // Dessin de l'image dans l'applet
         }
        
         }
    


    sous Eclipse avec Appletviewer l'image est visible sans aucun probleme
    mais quand j'ouvre le fichier html avec Firefox plus rien!! juste un carré gris. :colere2:

    comme je suis en dual boot vista/Ubuntu j'ai fais un
    test sous vista et la ça marche avec Firefox :euh:

    Je me suis dis que mon image n'était pas au bonne endroit.J'ai fini par la copier/coller un peu partout :p
    j'ai aussi essayé avec netbeans.

    A noter que l'applet de Cysboy sans image fonctionne trés bien!

    Je ne sais plus quoi faire :( .

    Aidez moi je suis au bord de la crise de nerf :D




    • Partager sur Facebook
    • Partager sur Twitter
      20 novembre 2010 à 15:49:49

      Bonjour si il y a un carré noire êtes vous sur d'avoir bien placer l'image ?
      je n'avez pas vue pardon
      • Partager sur Facebook
      • Partager sur Twitter
        20 novembre 2010 à 17:13:13

        Peut-etre en effet que certaines sécuritée sont installée sur firefox.

        As-tu essayé avec un autre navigateur sous linux ?

        Peut-tu faire un Affichage (JOptionPane) de ton chemin getCodeBase() avant l'affichage de l'image ?
        • Partager sur Facebook
        • Partager sur Twitter
        J'ai tous les badges d'OpenClassrooms.
          20 novembre 2010 à 18:51:23

          Salut,

          pour ma part, j'utilise ça pour faire appel à une image dans une applet:
          L'image étant à la racine de /WebContent.
          Et l'applet dans le même dossier que mes pages web.
          Ce code fonctionne dans les navigateurs, ms pas avec Appletviewer d'eclipse.
          Pour que ça fonctionne sous eclipse l'adresse de l'image est du genre "../WebContent/image.gif" (je dis ça de tête, donc à vérifier dsl...)
          (séparateur windows, et non testé sous linux)

          URL base = [instance de l'applet].getDocumentBase();
          
          Image myPic = [instance de l'applet].getImage(base, "image.gif");
          


          • Partager sur Facebook
          • Partager sur Twitter
            20 novembre 2010 à 21:54:55

            Merci pour vos réponses!!

            Voici le bilan de mon apres-midi de Galère:

            J'ai effectivement essayé un autre navigateur (epiphany) mais le problème est le même.

            Pour ce qui est de la methode getcodeBase() ça marche trés bien avec AppletViewer sous Eclipse mais rien
            dans le navigateur.(avec ubuntu)

            je suis repassé sous vista et j'ai reconstruit mes applets avec Eclipse:

            le code source:
            import java.awt.Color;
            
            import java.awt.Dimension;
            
            import java.awt.Graphics; // Pour l'objet Graphics passé en paramètre de la méthode paint()
            
                import java.awt.Image; // Pour l'objet Image que nous allons utiliser
            
            import java.net.URL;
            
            
            
            import javax.swing.JApplet; // La classe JApplet
            
            import javax.swing.JOptionPane;
            
                
            
                
            
              public class FirstApplet extends JApplet {
            
                
            
                 private Image image = null; 
            
                public void init() {
            
                	
            
                	//image = getImage(getCodeBase(), "java.gif"); 
            
                	URL base =this.getCodeBase();
            
                	image=getImage(base,"java.gif");
            
                 
            
                	this.setPreferredSize(new Dimension(600,500));
            
            
            
                 }
            
                
            
                 public void paint(Graphics g) {
            
                	 
            
                	g.setColor(Color.white);
            
                	g.drawRect(0,0,600,500);
            
                	 
            
                	g.drawImage(image, 0, 0,80,80, this); // Dessin de l'image dans l'applet
            
                 
            
                	g.setColor(Color.black);
            
                	g.drawString(String.valueOf(getCodeBase()), 80, 20);
            
                 }
            
                
            
                 }
            




            import java.awt.BorderLayout;
            
            import java.awt.Color;
            
            import java.awt.event.ActionEvent;
            
            import java.awt.event.ActionListener;
            
            
            
            import javax.swing.ImageIcon;
            
            import javax.swing.JApplet;
            
            import javax.swing.JButton;
            
            import javax.swing.JLabel;
            
            
            
            
            
            public class FisrtApplet extends JApplet {
            
            
            
            	private JLabel label = new JLabel();
            
            	private JButton bouton = new JButton();
            
            	private int count = 0;
            
            	/**
            
            	 * Méthode d'initialisation de l'applet
            
            	 * C'est cette méthode qui fait office de constructeur
            
            	 */
            
            	public void init(){
            
            		this.setSize(300, 580);
            
            
            
            		//On centre le texte du JLabel et on écrit en bleu...
            
            		label.setHorizontalAlignment(JLabel.CENTER);
            
            		//C'est plus zoli. 
            
            		label.setForeground(Color.blue);
            
            			ImageIcon img=new ImageIcon(getClass().getResource("java.gif"));
            
            			bouton.setIcon(img);
            
            		//Allez, une classe anonyme... Just for the fun 
            
            		this.bouton.addActionListener(new ActionListener(){
            
            			public void actionPerformed(ActionEvent arg0) {
            
            				label.setText("Vous avez cliqué " + (++count) + " fois sur le bouton");
            
            			}			
            
            		});
            
            		
            
            		//On ajoute nos composants
            
            		this.getContentPane().add(bouton, BorderLayout.SOUTH);
            
            		this.getContentPane().add(label, BorderLayout.NORTH);
            
            		//Et le tour est joué !
            
            	}
            
            	
            
            	
            
            }
            


            Ces deux applets fonctionnent (ou ont l'air de fonctionner...) avec opera et internet explorer
            pour firefox la première applet affiche bien l'image mais le reste est noir o_O la seconde fonctionne.

            Un probleme de plugin java??
            un test:
            Test Java
            tout marche bien ,ça m'enerve :colere2:






            :p:p ça marche!!!
            j'ai été obligé de désinstaller openjdk-6-jre et icedtea6-plugin
            puis j'ai installé sun-java6-jre et sun-java6-plugin.(trouvé ici)

            et mes deux petites applet fonctionnent . En esperant que ça dure :D

            Encore merci à tous ceux qui on passé du temps a chercher une solution
            A+ ;)



            • Partager sur Facebook
            • Partager sur Twitter
              20 novembre 2010 à 23:54:02

              arf. fallait commencer a preciser que tu etait sur openJdk. ... je le deteste :D
              • Partager sur Facebook
              • Partager sur Twitter
              J'ai tous les badges d'OpenClassrooms.

              Applet +image non visible

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown