Diaporama

khallou2007 Messages postés 51 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 13 juillet 2010 - 17 avril 2008 à 20:42
 Utilisateur anonyme - 25 avril 2008 à 06:59
bonjour,
j'ai un projet de Java (graphique) où l'utilisateur peut importer un dossier d'images et les lister , et bouton "Diaporama " qui l'affiche en diaporama.
bon le question c'est comment ecrire une CLASS Diaporama en java
et merci d'avance.

5 réponses

Utilisateur anonyme
18 avril 2008 à 13:10
Bonjour

Je te rappelle ceci (extrait du règlement) :

"
On ne demande pas un programme tout fait, on ne demande que de l'aide sur un problème concret."
Essaie de le faire seul et si tu rencontres des difficultés sur des
points précis, reviens ici nous poser des questions.
 
Darksidious a mis sur ce site les sources de sa classe JImagePanel, ça pourrait te servir. Moi j'ai déjà réalisé un programme du même genre que ce que tu as à fait, l'utilisateur peut se connecter avec un login et un mot de passe, importer des photos, les lister, les classer par dossier, les voir, les manipuler un peu (remise à l'échelle, redimensionnement), les déplacer d'un dossier à l'autre par des menus et avec des racourcis... J'ai mis le code source sur un de mes sites web mais plutôt que de te donner le corrigé tout cuit, je préfère que tu essaies de le faire seul et que tu reviennes nous voir avec des questions précises si tu bloques sur un point.

Bon courage.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
khallou2007 Messages postés 51 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 13 juillet 2010
24 avril 2008 à 15:47
bonjour gouessej,
j'ai un petit probleme lors du compilation ,(signalant que je suis debutant en Java)
d'abord j'ouvre File>new>project et je le nomme OpenImage et dans la page OpenImage.Java  j'ecrit la Class main suivant :

public class OpenImage
{
 public static void main(String args[])
 {
        java.awt.EventQueue.invokeLater(new Runnable())
        {
            public void run()
            {
                new OpenImage().setVisible(true);
            }
        }
       
       
       
            try
            {
            BufferedImage img = ImageIO.read(new File("F:/img2.gif"));
            JFrame frame = new JFrame("Demo load image");
            frame.getContentPane().add(new JLabel(new ImageIcon(img)));
            frame.pack();
            frame.setVisible(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
   }

puis dans la page OpenImageFrame.Java :

import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.io.*;
import java.beans.*;
import javax.swing.*;
import java.util.*;
 

/**
 * Sample application using Frame.
 *
 * @author
 * @version 1.00 08/04/24
 */
public class OpenImage extends javax.swing.JFrame
 {
       
       
   
    /** Creates new form OpenImage */
    public OpenImage() {
        initComponents();
        }

 private void initComponents() {
        jButton1 = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jButton1.setText("open");

        jPanel1.setBackground(new java.awt.Color(255, 255, 255));
        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 349, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 140, Short.MAX_VALUE)
        );

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(157, 157, 157)
                        .add(jButton1))
                    .add(layout.createSequentialGroup()
                        .add(20, 20, 20)
                        .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(31, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(23, 23, 23)
                .add(jButton1)
                .add(49, 49, 49)
                .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(65, Short.MAX_VALUE))
        );
        pack();

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
 {
     public class Bean1 extends Canvas implements Serializable, PropertyChangeListener
     {
    // Tableau d'images.
    private Image[] image;
    // Chemin d'acces aux images.
    private File path;
    // Tableau de noms d'images.
    private String[] list;
    // Indice d'image dans le tableau.
    private int numero;
    // Booleen permettant d'activer le mode diaporama.
    private boolean diapo;
    // Booleen permettant d'activer le mode boucle.
    private boolean loop;
    // Attribut permettant de choisir la temporisation dans l'affichage.
    private int tempo;
    // Attribut permettant de choisir le repertoire d'images.
    private String rep="Z:\\bean\\dessins\";
    // Gestion de la notification des changements.
    private PropertyChangeSupport changement; 
    // Vecteur contenant les evenements du aux changements d'images.
    private Vector imageChangeListeners=new Vector();
 
    // Constructeur de la classe.
    public Bean1(){
    try {
        path=new File(rep);
        list=path.list(new MyFilenameFilter());
        image=new Image[list.length+1];
        numero=0;
        diapo=false;
        loop=false;
        tempo=500;
        changement = new PropertyChangeSupport(this);
        chargeImage();
    }
    catch(Exception ex) {
        ex.printStackTrace();
    }
    addPropertyChangeListener(this);
    }
   
    // Chargement des images du repertoire.  
    public void chargeImage(){
    numero=0;
    for(int i=0;i<list.length;i++){
        image[i] = getToolkit().getImage( rep + list[i]);
        prepareImage(image[i], this);
    }
    setSize(250,250);
    }
   
    // Affichage des images et test du mode diaporama.
    public synchronized void paint(Graphics g){
    g.drawImage(image[numero], 0, 0, this);
    if (diapo==true)
    {
        notifyImageChange(image[numero],list[numero]);
        try{
        Thread.sleep(tempo);
        }
        catch(InterruptedException e){System.out.println ("Erreur");}
        if((numero==list.length-1) && (loop==false))
        diapo=false;
        suivant();
    }
    }
   
    // Affichage de la premiere image. 
    public void debut(){numero=0;repaint();}
   
    // Affichage de l'image suivante.
    public void suivant(){
    if(numero==list.length-1) numero=0;
    else numero++;
    repaint();
    }
   
    // Affichage de l'image precedente.
    public void precedent(){
    if(numero==0)
        numero=list.length-1;
    else
        numero--;
    repaint();
    }
   
    // Affichage de la derniere image.
    public void fin(){
    numero=list.length-1;
    repaint();}
 

   
    /**
     * Shutdown procedure when run as an application.
     */
    protected void windowClosed() {
       
        // TODO: Check if it is safe to close the application
       
        // Exit application.
        System.exit(0);
    }
}
}
}

la compilation ne donne aucun erreur (Build Output : Process completed.)
mais Task List me donne des erreur que je ne trouve pas comment les corriger et lors de l'execution
  il m'affiche cette message ds msd : Exception in thread "main" java.lang.NoClassDefFoundError: OpenImage
Press any key to continue .
et merci d'avance
0
Utilisateur anonyme
24 avril 2008 à 21:24
Désolé, c'est une mauvaise idée de compiler en utilisant un IDE quand on débute et je ne compile pas avec ça.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
khallou2007 Messages postés 51 Date d'inscription dimanche 9 décembre 2007 Statut Membre Dernière intervention 13 juillet 2010
24 avril 2008 à 21:40
alors j'utilise comme quoi pour compiler?
(ds notre etude en utilise seulement Jcreator)
0

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

Posez votre question
Utilisateur anonyme
25 avril 2008 à 06:59
JCreator n'est pas une compilateur, c'est un IDE, il utilise le précompilateur de Sun qui fait partie de ton JDK. En ligne de commande, tu peux faire comme ça :
(en te mettant dans le bon répertoire)
javac OpenImage.java

Puis pour exécuter :

java OpenImage

C'est vraiment une mauvaise pratique pédagogique de vous faire travailler avec un IDE quel qu'il soit dès le début.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
Rejoignez-nous