|
Trouver une ressource
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 : Image+diaporama [ Multimédia / Image et vidéo ] (khallou2007)
Informations & options pour cette discussion
|
jeudi 24 avril 2008 à 20:47:20 |
Image+diaporama

khallou2007
|
j'ai un projet Java dont le but créé une application (graphique) qui permet d'importer des images à partir d'un repertoire donné et les affiches , aussi les mettre au mode Diaporama , (signalant que je suis debutant en Java) alors j'ouvre File>new>project et je le nomme OpenImage et dans la page OpenImage.Java j'ecrit la Class main suivant : publicclass OpenImage { publicstaticvoid main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable()) { publicvoid 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 j'ecrit: 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 */ publicclass OpenImage extends javax.swing.JFrame {
/** Creates new form OpenImage */ public OpenImage(){ initComponents(); } privatevoid 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(); privatevoid jButton1ActionPerformed(java.awt.event.ActionEvent evt) { publicclass 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. privateint numero; // Booleen permettant d'activer le mode diaporama. privateboolean diapo; // Booleen permettant d'activer le mode boucle. privateboolean loop; // Attribut permettant de choisir la temporisation dans l'affichage. privateint 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. publicvoid 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. publicsynchronizedvoid 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. publicvoid debut(){numero=0;repaint();}
// Affichage de l'image suivante. publicvoid suivant(){ if(numero==list.length-1) numero=0; else numero++; repaint(); }
// Affichage de l'image precedente. publicvoid precedent(){ if(numero==0) numero=list.length-1; else numero--; repaint(); }
// Affichage de la derniere image. publicvoid fin(){ numero=list.length-1; repaint();}
/** * Shutdown procedure when run as an application. */ protectedvoid windowClosed(){
// TODO: Check if it is safe to close the application
// Exit application. System.exit(0); } } } } le probleme est lors du compilation elle ne donne aucun erreur (Build Output : Process completed.) mais Task List me donne des erreur que je ne trouve pas comment les corrigées 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 .
|
|
|
|
jeudi 24 avril 2008 à 22:11:04 |
Re : Image+diaporama

jojolemariole
|
Ta façon de coder m'embrouille un peu mais je peux quand même t'indiquer qu'une classe doit absolument porter le même nom que le fichier dans lequel tu l'écris. Autrement dit, dans un fichier OpenImageFrame.java, tu ne peux définir qu'une classe OpenImageFrame (et d'autres classes à l'intérieur de cette classe si tu veux (pas indiqué, sauf pour les petits écouteurs et autres). Par curiosité, tu utilises quel IDE pour qu'il te compile des trucs pareils?
|
|
|
|
jeudi 24 avril 2008 à 22:54:45 |
Re : Image+diaporama

khallou2007
|
merci pour le reponse , j'utilise JCreator ,et oui j'ai changer le nom du classe mais le probleme est le meme (d'abord tu m'a compri mon but?)
|
|
|
|
jeudi 24 avril 2008 à 23:02:03 |
Re : Image+diaporama

jojolemariole
|
Désolé je ne peux pas t'aider, je ne connais pas JCreator, si un jour tu as envie de changer, essaie Eclipse ou NetBeans. Apparemment tu utilises un outil WYSIWYG pour créer tes interfaces graphiques. Je trouve que le code est absolument immonde sans compter qu'il utilise des librairies externes du coup nous on peut pas tester facilement ton code.
|
|
|
|
jeudi 24 avril 2008 à 23:07:24 |
Re : Image+diaporama
|
|
jeudi 24 avril 2008 à 23:12:06 |
Re : Image+diaporama

khallou2007
|
cad est ce que je peut prendre le code tel quel est et le mettre dans Netbeans?
|
|
|
|
jeudi 24 avril 2008 à 23:13:00 |
Re : Image+diaporama

khallou2007
|
j'ai oublié de te signaler que j'ai Netbeans 5.0
|
|
|
|
jeudi 24 avril 2008 à 23:30:42 |
Re : Image+diaporama

jojolemariole
|
Voilà je t'ai fait un exemple que je viens de faire. Change juste le nom du repertoire qui ne donnera rien chez toi ;). N'oublie pas de mettre \\ au lieu de \ dans la chaîne de caractères. A part ça bah si ça fonctionne pas reposte. Pour limiter les difficultés, tout est dans une classe donc tu ne devrais pas avoir de mal à le passer dans NetBeans : 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 javax.swing.JScrollPane;
public class Diaporama extends JFrame implements Runnable {
private static final long serialVersionUID = 1L;
private String folder;
private String[] images;
private int index;
private JLabel image;
public Diaporama(File folder) { super("Diaporama"); images = folder.list(); this.folder = folder.getAbsolutePath(); index = 0;
setSize(800, 600); image = new JLabel(); add(new JScrollPane(image));
setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void lireImage(String imageName) throws IOException { System.out.println(folder + imageName); image.setIcon(new ImageIcon(ImageIO.read(new File(folder + "\\" + imageName)))); }
public void run() { while (true) {
try { lireImage(images[index]); } catch (IOException e) { e.printStackTrace(); } catch (NullPointerException e) { }
try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); }
index = (index + 1) % images.length;
} }
public static void main(String[] args) { Diaporama diap = new Diaporama(new File( "E:\\Photos\\2006 - 07 - Appartement - Pontivy")); new Thread(diap).start(); } }
|
|
|
|
vendredi 25 avril 2008 à 00:13:21 |
Re : Image+diaporama

khallou2007
|
comme tu voi je suis debutant (c'est mnt que je decouvert Netbeans) voila ce que je'ai fait: File>New project>General>Java application>Next>Projet name : OpenImage >finish. ( est ce que c'est ça ce que je doit faire?) enfin je recopie le code dans la fenetre qui s'affiche est je fait F6 . mais je ne vois pas des et il y a des croix rouge devant des lignes mais il n'y a pas des fautes ?
|
|
|
|
vendredi 25 avril 2008 à 00:34:47 |
Re : Image+diaporama

jojolemariole
|
D'habitude j'utilise Eclipse mais là pour comparer, j'ai installé NetBeans.
Personnellement, dans l'ordre j'ai fait :
File > New project > Java > Java Application
Mais comme j'ai la version 6.0 je pense que c'est équivalent.
Ensuite j'ai appelé mon projet Test1 (ça on s'en fout), j'ai décoché "create main class". Encore une fois, il est possible que sur ta version tu n'aies pas les mêmes options.
Ensuite j'ai cliqué sur Finish.
Après ça j'ai fait un clic droit sur le dossier SourcePackages et j'ai choisi new java class
Je l'ai appelé "Diaporama" et j'ai cliqué sur Finish.
Enfin, dans la zone de texte qui est apparue à droite (Diaporama.java), j'ai effacé le contenu déjà écrit et j'ai remplacé par ce le code que je t'ai fourni.
à savoir :
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 javax.swing.JScrollPane;
public class Diaporama extends JFrame implements Runnable {
private static final long serialVersionUID = 1L;
private String folder;
private String[] images;
private int index;
private JLabel image;
public Diaporama(File folder) { super("Diaporama"); images = folder.list(); this.folder = folder.getAbsolutePath(); index = 0;
setSize(800, 600); image = new JLabel(); add(new JScrollPane(image));
setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void lireImage(String imageName) throws IOException { System.out.println(folder + imageName); image.setIcon(new ImageIcon(ImageIO.read(new File(folder + "\\" + imageName)))); }
public void run() { while (true) {
try { lireImage(images[index]); } catch (IOException e) { e.printStackTrace(); } catch (NullPointerException e) { }
try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); }
index = (index + 1) % images.length;
} }
public static void main(String[] args) { Diaporama diap = new Diaporama(new File( "E:\\Photos\\2006 - 07 - Appartement - Pontivy")); new Thread(diap).start(); } }
Enfin, j'ai cliqué sur le petit triangle vert (F6).
Il m'a demandé quelle classe je voulais lancer, jai sélectionné Diaporama et j'ai cliqué sur OK.
Ca a fonctionné.
Eventuellement expliques nous plus en détail les erreurs correspondant à tes croix rouges ou alors fais un screenshot.
|
|
|
Cette discussion est classé dans : java, image, add, layout, jdesktop
Répondre à ce message
Sujets en rapport avec ce message
interface graphique [ par gadour_esz ]
salut,voila mon code java dont je l'avais préparé avec l'éditeur NetBeanspublic class Fenetre5 extends javax.swing.JFrame { /** Creates new fo
problème avec l'impression [ par ulysse00 ]
salut mes amis je viens d'essayer de realiser une application pour lancer une impression mais ça ne marche pas voila le code package aa;import ja
probleme avec mon projet [ par niko29940242 ]
bonsoir a tous , je suis en train de faire un jeu de morpion avec une petite interface graphique (je dis petite car mes connaissanec en java sont tres
image en JAVA [ par mukam ]
salut je cherche un code qui permert d' inserer deux images de dim différents l'une au dessous de l'autre merci de me répondre c très urgent rigolo
Erreur avec Java [ par boulet21 ]
Voici mon programme : package karnaugh;import java.util.*;public class Gray extends ArrayList{ public Gray(String S) { for(int i=0; i
Afficher gif animé avec java [ par julio26 ]
Salut à tous,J'aimerais afficher un gif animé dans mon inteface graphique.J'ai essayé ça: g.drawImage((new ImageIcon("C:\\Image\\pianiste.gif")).getIm
conflit entre les composants et l'image [ par ulysse00 ]
salut mes amis j'ai un pb que je n'arrive pas un résoudre et j'ai essayé plusieurs fois de modifier le code mais ça n'a pas marché , je cherche a aff
Projet java [ par yannus83 ]
Bonjour Dans le cadre d'un projet java, je dois réaliser un programme générant des fractales (Mandelbrot ou Julia). Pour le moment une ébauche est fou
[JAVA] Redimension d'image [ par elanari ]
Bonjour,Je cherche a redimensionner une image en java pour qu'elle rentre dans un JPanel. J'ai essayé avec getScaledInstance mais il ne change absolum
Rafraichissements par seconde [ par Abralou ]
<!-- @page { size: 21cm 29.7cm; margin: 2cm }
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|