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

 Java Discussion :

Affichage d'une image


Sujet :

Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut Affichage d'une image
    Salut;
    je suis débutant en java et je suis entrain de programmer une interface qui permet l'affichage d'une image Mais j'arrive pas à faire l'action sur le button "afficher" ou "annuler"

    Voici mon code:
    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
     
    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class Interface extends JFrame  implements ActionListener{
     
    	private JPanel p1 = new JPanel();
    	private JPanel p2 = new JPanel();
    	private JButton B1 = new JButton("Afficher");
    	private JButton B2 = new JButton("Annuler");
    	JLabel label= new JLabel();
    	public Interface(){
     
        	 this.setTitle("Afficher image");
             this.setSize(800, 500);
             this.setLocationRelativeTo(null);
             this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             p1.setLayout(new BorderLayout ( ) ) ;
             p2.setLayout(new FlowLayout());
             p1.add(p2, BorderLayout.SOUTH);
             p2.add(B1);
             p2.add(B2);
             this.setContentPane(p1);
             this.setVisible(true);
             B1.addActionListener(new BoutonListener());
             B2.addActionListener(new BoutonListener());
    	}
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
     
    	}
    	public class Picture extends JPanel {
     
    		public void paintComponent(Graphics g){
                    try {
                            Image img = ImageIO.read(new File("Image.jpg"));
                            g.drawImage(img, 200, 200, this);
     
                    } catch (IOException e) {
     
                            e.printStackTrace();
                    }
     
            }
     
     
    }
    	class BoutonListener  implements ActionListener{
    		public void actionPerformed(ActionEvent e) {
    			Object source = e.getSource();
     
    			if(source == B1){ 
     
    				  //????????????     
    			}
                         else if (source == B2){
                                    //????????????     
                                }
     
    				}}}}
    Et Merci d'avance.

  2. #2
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Que n'arrives tu pas à faire? N'arrive tu pas à effacer l'image quand on clique sur le bouton effacer?

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    Merci pou cette réponse rapide, en faite je n'arrive ni à la charger ou l'effacer.

  4. #4
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,

    la solution la plus simple et d'utiliser un JLabel et la méthode setIcon(Icon icon) au lieu de créer une nouvelle classe héritant de JPanel

    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
     
    public class Interface extends JFrame
    {
            private JLabel label= new JLabel();
            private ImageIcon img = new ImageIcon("image.jpg");
    	public Interface(){    	
        	 ....
             p1.add(label, BorderLayout.CENTER);
             ....
           }
    	class BoutonListener  implements ActionListener{
    		public void actionPerformed(ActionEvent e) {
    			Object source = e.getSource();			
    			if(source == B1){ 
    				label.setIcon(img);
    			} else if (source == B2){
    				label.setIcon(null);
    			}
     
    		}
    	}
    }

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    Merci infiniment, sa marche
    Mais est ce que par la méthode "set.icon" je peux lire les pixels du l'image ?

  6. #6
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    il y a la méthode getRGB(int x, int y) de la classe BufferedImage http://java.sun.com/javase/6/docs/ap...GB(int,%20int)

  7. #7
    Membre confirmé Avatar de smh_master
    Inscrit en
    Août 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 143
    Par défaut
    salut,
    quesqu'il faut ajouter à ce code pour qu'il puisse afficher une liste d'images d'une manière séquentiel (par exemple chaque 2 secondes) ?
    merci

  8. #8
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    salut,
    quesqu'il faut ajouter à ce code pour qu'il puisse afficher une liste d'images d'une manière séquentiel (par exemple chaque 2 secondes) ?
    Tu peux utiliser un timer pour changer les images

  9. #9
    Membre confirmé Avatar de smh_master
    Inscrit en
    Août 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 143
    Par défaut
    j'ai utilisé Thread.sleep(2000); ça marche mais lorsqu'il affiche les images il ne remplace pas l'ancienne par la nouvelle
    les image restent superposés (je peux le voir puisque mes images sont de tailles différentes)
    et moi ce que je veux c'est image2 remplace image1 après 2s, ensuite image3 remplace image2 ainsi de suite.
    merci

  10. #10
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Je ne sais pas ce que tu as fais pour que les images soient supperposées. Si tu as utilisé un JLabel, le fait de faire setIcon change l'ancienne image.
    Aussi, j'ai parlé d'un timer pas de faire une boucle infinie dans la quelle tu fait un sleep(2000) apres quoi tu redessine une nouvelle image.

    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
     
    //private Timer timer;
    //private ActionListener performer;
    //private String[] images={"image1.png", "image2.png", "image3.png" };
    //private int position=0;
     
    performer= new ActionListener()
           {
             public void actionPerformed(ActionEvent evt)
             {
               label.setIcon(images[position]);
               position++;
               if(position>=images.length())
                position=0;
             }
     
           };
    //on lance le timer
           timer= new Timer(2000, performer);
           timer.start();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tomcat] Affichage d'une image
    Par david71 dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 15/02/2005, 11h37
  2. Réponses: 2
    Dernier message: 27/12/2004, 09h23
  3. Pbs d'affichage d'une image sur un panel
    Par ysr1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/09/2004, 09h55
  4. [FLASH MX] Qualité d'affichage d'une image
    Par n_tony dans le forum Flash
    Réponses: 3
    Dernier message: 16/08/2004, 09h44
  5. Affichage d'une image sous linux
    Par Braim dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 25/03/2003, 10h41

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