Visionner des images JAVA

punisher999 Messages postés 9 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 18 septembre 2008 - 8 mai 2008 à 17:59
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 - 9 mai 2008 à 12:58
Bonjours, ce que je voudrais faire est peut-être simple mais ne l'ai pas pour moi.

Je veux que mon interface ressemble à cela (en ce moment elle lui ressemble) sauf que je veux que mon interface aille chercher dans un dossier spécifique les images qui s'y trouve dans le dossier et qu'on puisse naviguer en cliquant sur les flèches.

Voici le genre

Voici mon code pour ceux qui vont pouvoir m'aider, car je suis débutant

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.HashSet;
import java.util.Set;

import javax.imageio.ImageIO;
import javax.swing.*;


public class InterfaceFax extends JFrame implements ActionListener{

private JPanel haut = new JPanel();
private JPanel bas = new JPanel();
private JButton precedent = new JButton(new ImageIcon("images/Précédent.gif"));
private JButton suivant = new JButton(new ImageIcon("images/Suivant.gif"));
private JButton imprimer = new JButton(new ImageIcon("images/Imprimer.gif"));

public InterfaceFax(){
super("Gestion des fax");
initComposants();
this.setSize(500, 500);
this.setResizable(false);
this.setVisible(true);

}
public void initComposants(){
Container c = getContentPane();

precedent.addActionListener(this);
precedent.setMargin(new Insets(0,0,0,0));
precedent.setVisible(true);
haut.add(precedent);

suivant.addActionListener(this);
suivant.setMargin(new Insets(0,0,0,0));
suivant.setVisible(true);
haut.add(suivant);

imprimer.addActionListener(this);
imprimer.setMargin(new Insets(0,0,0,0));
imprimer.setVisible(true);
haut.add(imprimer);

c.add(haut, BorderLayout.NORTH);
c.add(bas, BorderLayout.SOUTH);


}

public void actionPerformed(ActionEvent e){
if(e.getSource()== precedent ){



}

}
public static void main(String[] args){
InterfaceFax fax = new InterfaceFax();
fax.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

7 réponses

cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
8 mai 2008 à 20:15
Salut,

voici une solution après quelques modifications de ton code :

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.util.*;

class InterfaceFax extends JFrame implements ActionListener{
    private JPanel haut = new JPanel();
    private JLabel bas = new JLabel();  // je me suis permis de changer le type (plus simple)
    private JButton precedent = new JButton("Precédent");
    private JButton suivant = new JButton("Suivant");
    private JButton imprimer = new JButton("Imprimer");
   
    // un vector qui va contenir toutes les images dans ton répertoire
    private Vector vectImages = new Vector();
    // indice pour désigner l'image courante
    private int indiceImage = 0;

    public InterfaceFax(){
        super("Gestion des fax");
       
        initVectImages();   // initialiser un tableau d'images
       
        initComposants();
        this.setSize(500, 500);
        this.setResizable(false);
        this.setVisible(true);
    }
   
    /* remplir le tableau d'images vectImages avec les images contenues dans le répertoire ./images */
    private void initVectImages() {
        File tabImages[] = new File("Images").listFiles();
        for(File fichier : tabImages) {
            ImageIcon image = new ImageIcon(fichier.getAbsolutePath());
            vectImages.add(image);
        }
    }
   
    public void initComposants(){
        Container c = getContentPane();

        precedent.addActionListener(this);
        haut.add(precedent);

        suivant.addActionListener(this);
        haut.add(suivant);

        imprimer.addActionListener(this);
        haut.add(imprimer);

        c.add(haut, BorderLayout.NORTH);
        c.add(bas, BorderLayout.CENTER);    // au lieu de SOUTH
    }
   
    private void changerImage() {
        if(indiceImage < 0)
                indiceImage = vectImages.size() - 1;
        if(indiceImage >= vectImages.size())
                indiceImage = 0;
        bas.setIcon(vectImages.get(indiceImage));
    }
   
    public void actionPerformed(ActionEvent e){
        Object source = e.getSource();
        if(source == precedent ){
            indiceImage--;
            changerImage();
            return;
        }
        if(source == suivant) {
            indiceImage++;
            changerImage();
            return;
        }
    }
   
    public static void main(String[] args){
        InterfaceFax fax = new InterfaceFax();
        fax.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

Cordialement..
0
punisher999 Messages postés 9 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 18 septembre 2008
8 mai 2008 à 21:43
Wow WOw Wow !!! Merci beaucoup, si j'ai dautres questions, je n'hésiterais pas a poster ici. Quel aide !!
0
punisher999 Messages postés 9 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 18 septembre 2008
8 mai 2008 à 21:47
Bon, suite à ce message, je suis très sastifait du résultat.

Quelques questions !!!

1. Comment je pourrais centrer les images ?

2. Comment puis-je arriver dans le programme et la première image aparaissent déja ?

3. Comment faire une fonction qui supprimerais une image
0
punisher999 Messages postés 9 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 18 septembre 2008
9 mai 2008 à 00:14
Quelqu'un a une idée ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
9 mai 2008 à 09:50
Bonjour,








pour charger le programme avec une image, il te suffit d'appeler la méthode changerImage() dans le constructeur ou dans la méthode initComponent()..

Supprimer une image ? physiquement ? ou bien la supprimer de vectImages ?
0
punisher999 Messages postés 9 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 18 septembre 2008
9 mai 2008 à 12:21
Supprimer une image qui supprimerais l'image de l'application ainsi que du dossier ou elle est l'est !!!

Voici mon code :

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.util.*;

public class InterfaceFax extends JFrame implements ActionListener{
    private JPanel haut = new JPanel();
    private JLabel bas = new JLabel();  //
    private JButton precedent = new JButton(new ImageIcon("images/Précédent.gif"));
    private JButton suivant = new JButton(new ImageIcon("images/Suivant.gif"));
    private JButton supprimer = new JButton(new ImageIcon("images/Supprimer.gif"));
    private JButton imprimer = new JButton(new ImageIcon("images/Imprimer.gif"));
    private ArrayList images = new ArrayList();
    private File tabImages[];
    //indice pour désigner l'image courante
    private int indiceImage = 0;

    public InterfaceFax(){
        super("Gestion des fax");
      

        initImage();
      
        initComposants();
        this.setSize(500, 500);
        this.setResizable(false);
        this.setVisible(true);
       
    }
  
    //Rempli un tableau d'images
    private void initImage() {
        File tabImages[] = new File("test").listFiles();
        for(File fichier : tabImages) {
            ImageIcon image = new ImageIcon(fichier.getAbsolutePath());
            images.add(image);
           
          
        }
       
    }
 
 
  
    public void initComposants(){
       
        //Pour centrer les images
        bas.setHorizontalAlignment(JLabel.CENTER);
        bas.setVerticalAlignment(JLabel.CENTER);
           
        //Pour afficher la première image
        if(images.size() > 0)
            bas.setIcon(images.get(0));
       
   
       
       

        precedent.addActionListener(this);
        precedent.setMargin(new Insets(0,0,0,0));
        haut.add(precedent);

        suivant.addActionListener(this);
        suivant.setMargin(new Insets(0,0,0,0));
        haut.add(suivant);
       
        supprimer.addActionListener(this);
        supprimer.setMargin(new Insets(0,0,0,0));
        haut.add(supprimer);
     
        imprimer.addActionListener(this);
        imprimer.setMargin(new Insets(0,0,0,0));
        haut.add(imprimer);
       
        haut.setBackground(Color.BLACK);
   
       
        add(haut, BorderLayout.NORTH);
        add(bas, BorderLayout.CENTER);
    }
  
    private void changerImage() {
        if(indiceImage < 0)
                indiceImage = images.size() - 1;
        if(indiceImage >= images.size())
                indiceImage = 0;
        bas.setIcon(images.get(indiceImage));
    }
 
  
  
    public void actionPerformed(ActionEvent e){
        Object source = e.getSource();
        if(source == precedent ){
            indiceImage--;
            changerImage();
            return;
        }
        if(source == suivant) {
            indiceImage++;
            changerImage();
            return;
        }
        if(source == supprimer){
       
       
     

    
        }
    }
  
    public static void main(String[] args){
        InterfaceFax fax = new InterfaceFax();
        fax.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
9 mai 2008 à 12:58
re,

pour supprimer un élément d'un Vector, utilises la méthode remove()..

pour supprimer physiquement un fichier, il y a la méthode deletede la classe File..
0
Rejoignez-nous