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)

jeudi 8 mai 2008 à 17:59:43 | Visionner des images JAVA

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]

jeudi 8 mai 2008 à 20:15:24 | Re : Visionner des images JAVA

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..

jeudi 8 mai 2008 à 21:43:09 | Re : Visionner des images JAVA

punisher999

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

jeudi 8 mai 2008 à 21:47:13 | Re : Visionner des images JAVA

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

vendredi 9 mai 2008 à 00:14:32 | Re : Visionner des images JAVA

punisher999

Quelqu'un a une idée ?

Merci

vendredi 9 mai 2008 à 09:50:40 | Re : Visionner des images JAVA

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 ?

vendredi 9 mai 2008 à 12:21:09 | Re : Visionner des images JAVA

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);
    }
}

vendredi 9 mai 2008 à 12:58:24 | Re : Visionner des images JAVA

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..



Cette discussion est classé dans : images, java, import, precedent, jbutton


Répondre à ce message

Sujets en rapport avec ce message

Erreur à l'exécution d'un applet [ par Warwick ] BonjourJe vous présente les erreurs que j'ai lors de l'exécution de mon applet java.lang.NullPointerException at java.awt.Container.addImpl(Con Communication entre 2 classes pour une applet [ par Warwick ] Bonjour, je débute le java, et j'ai quelques petits problèmes pour faire communiquer 2 classes entre elles et j'aurais besoin de votre aide...Mon appl JButton, Jpanel et Jframe...Ca marche pas!!! [ par alexglvr ] Bonjour à tous,je suis en train de developper ma premiere appli java, et j'ai le probleme suivant qui me bloque depuis plusieur jours:Je crée une JPan urgent svp [ par wadiaa2 ] j ai un pb avec les pactages java je sais pas d'ou les procurer ?pour continuer mon application je dois avoir les deux pactages suivants :import="java là, ça m'echappe!!!!!!! [ par othland ] salut tout le monde!toujours avec le pb d'affichage d'un fichier texte (qui setrouve dans le disque dur) dane un champs de texte!je vous donne ma sour Probème dans mon code pour port parallèle [ par mageti ] Bonjour à tous,Je poursuis péniblement ma quête à propos de "comment puis-je commander mon port parallèle ?"J'ai bidouillé un petit code à partir des Tentative d'editeur de map [ par Bouki ] Voila je tente de faire un editeur de map, mon pb c'est que l'image ne s'affiche pas et qu'il n'y a aucune réaction au clic (j'ai essayé des println p socket [ par bfranco8 ] Bonjour,Je souhaite réaliser un transfert de fichiers entre un client et un serveur.Je suis débutant dans ce langage. Je serais vraiment content si qu pb affichage image compren po :( [ par doudoudidoune ] je commence en java et pr l'instant g fait un pti pgm ki affiche une fenetre ac un menu déroulant et un bouton... super...bref j'aimerai y intégrer un Java JDBC [ par misterpatate ] Salut les gens... Je me mets actuelement aux BDD avec Java et donc JDBC. J'avoue que je suis un peu nul donc j'ai regardé à peu près toutes les source


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

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



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.