darkspoilt
Messages postés254Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention10 octobre 2013
-
15 oct. 2007 à 11:10
darkspoilt
Messages postés254Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention10 octobre 2013
-
17 oct. 2007 à 09:05
Bonjour,
Je voudrais savoir si quelqu'un peu m'aider a programmer ou me fournir une aplication java permettant d'afficher un défilement d'images (avec suivant, précédent) voir un diaporama ave un timer, en utilisant les bean.
Merci d'avance.
darkspoilt
Messages postés254Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention10 octobre 2013 16 oct. 2007 à 09:12
Voila j'ai créer ca avec les autres classes qui vont avec mais je ne vois pas comment l'utiliser avec un jpanel pour qu'il soit apres exécutable directement ave un jar
Ah oui peux t'on charger statiquement les images qui seraient dans un jar?
/**
* Cette classe definit un bean permettant d'afficher successivement des images
* stockees dans un repertoire.
*/
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();}
// Methodes gerant le mode Diaporama.
public boolean getDiaporama(){return diapo;}
public void setDiaporama(boolean b){diapo=b;}
// Methodes gerant le mode Boucle.
public boolean getBoucle(){return loop;}
public void setBoucle(boolean b){loop=b;}
// Methodes gerant la temporisation.
public int getTemporisation(){return tempo;}
public void setTemporisation(int t){tempo=t;}
// Methodes gerant le repertoire d'images.
public String getRep(){return rep;}
public void setRep(String s){
// Notification d'un changement de repertoire.
changement.firePropertyChange("rep",rep,s);
}
// Implementation de la methode d'abonnement.
public void addPropertyChangeListener(PropertyChangeListener l){
changement.addPropertyChangeListener(l);
}
// Implementation de la methode de desabonnement.
public void removePropertyChangeListener(PropertyChangeListener l){
changement.removePropertyChangeListener(l);
}
// Implementation de l'interface PropertyChangeListener.
public void propertyChange(PropertyChangeEvent e){
if(e.getPropertyName()=="rep"){
String s = e.getNewValue().toString();
path=new File(s);
if (path.isDirectory()){
rep = path.toString();
if(!rep.endsWith("\")) rep = rep + "\";
list=path.list();
chargeImage();
repaint();
}
}
}
// Implementation de addImageChangeListener.
public synchronized void addImageChangeListener(ImageChangeListener l){
if(!imageChangeListeners.contains(l))
imageChangeListeners.addElement(l);
}
Twinuts
Messages postés5374Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention 3 mars 2023111 16 oct. 2007 à 09:50
Salut,
j'ai pas regarder tous le code (pas encore bien réveillé ^^) et je n'ai pas trop compris ce que tu voulais faire mais bon tu veux un JPanel en voici en voilou :
Note : tu trouveras en rouge les modif pour le JPanel
Il te reste plus qu'a mettre ton panel dans une fenetre et d'afficher celle-ci.
Pour ce qui est de l'image dans le jar regarde dans le forum il y a la réponse.
Autre point en java n'utilise JAMAIS l'anti slash '\' comme séparateur de fichiers soit tu utilise simple le slash '/' (qui fonctionne très bien sous windoz) soit tu utilises java.io.File.separator.....
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
darkspoilt
Messages postés254Date d'inscriptionjeudi 13 janvier 2005StatutMembreDernière intervention10 octobre 2013 16 oct. 2007 à 10:12
En fait je veux charger les images d'un dossier et les faire défiler comme un diaporama mais tout cela dans une fenetre et je dois utiliser canvas apparement pour manipuler les objets mais j'aimerais que ca s'ouvre dans une fenêtre ou je puisse affihcer mes images