begin process at 2008 05 12 07:15:38
1 170 148 membres
52 nouveaux aujourd'hui
13 956 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Visionner des images JAVA [ Divers / Débutant(e) ] (punisher999)

Visionner des images JAVA le 08/05/2008 17:59:43

punisher999
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 [IMG]http://www.nordiks.com/images/faxscreen.JPG[/IMG]

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

[CODE]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);
}
}
[/CODE]

Re : Visionner des images JAVA le 08/05/2008 20:15:24

Chatbour
Membre Club
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<ImageIcon> vectImages = new Vector<ImageIcon>();
    // 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..

Re : Visionner des images JAVA le 08/05/2008 21:43:09

punisher999
Wow WOw Wow !!! Merci beaucoup, si j'ai dautres questions, je n'hésiterais pas a poster ici. Quel aide !!

Re : Visionner des images JAVA le 08/05/2008 21:47:13

punisher999
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

Re : Visionner des images JAVA le 09/05/2008 00:14:32

punisher999
Quelqu'un a une idée ?

Merci

Re : Visionner des images JAVA le 09/05/2008 09:50:40

Chatbour
Membre Club
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 ?

Re : Visionner des images JAVA le 09/05/2008 12:21:09

punisher999
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<ImageIcon> images = new ArrayList<ImageIcon>();
    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);
    }
}

Re : Visionner des images JAVA le 09/05/2008 12:58:24

Chatbour
Membre Club
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 delete de la classe File..


Classé sous : images, java, import, precedent, jbutton

Participer à cet échange

Appels d'offres

Pub



Snippets en rapport

CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS