darkspoilt | Bonjour j'ai créer ce bean pour qu'il fonctionne avec une bean box et j'aimerais le faire fonctioner dans une fenêtre awt ou swing,
Pourais-t'on me donnner un tuto ou un début afin que je puisse metre cela dans une fênêtre JAVA
Merci d'avance
Code :
- import javax.swing.* ;
- import java.awt.* ;
- import java.awt.event.* ;
- import javax.swing.event.* ;
- import java.net.URL ;
- import java.io.* ;
- import java.util.* ;
- import java.awt.image.*;
- import java.beans.*;
- /**
- * Une classe qui permet d'affiche une image dans un composant graphique.
- * A utiliser dans un bean et une beanbox.
- */
- public class Viewer extends Canvas implements Serializable, ActionListener,ImageObserver {
-
- /** Le timer pour le mode diaporama. */
- protected javax.swing.Timer timer ;
-
- /** Un tableau pour stocker les images a afficher. */
- protected Image [] images ;
-
- /** Commence par initialiser le chemin vers l'image a afficher.
- */
- public Viewer() {
- super();
- setSize( 160, 90 );
- imagePath = "D:\images\" ;
- load();
- tempo = 2 * 1000 ;
- loop = true ;
- timer = new javax.swing.Timer( tempo, this );
- timer.setRepeats( true );
- timer.start();
- }
-
- /**
- * Charge toutes les images du repertoire dans lengthtableau d'Images.
- */
- public void load() {
- // Recupere les noms des fichers.
- files = new File( imagePath ).listFiles
- ( new FilenameFilter() {
- public boolean accept( File dir, String name ) {
- return name.endsWith( ".jpg" ) || name.endsWith( ".gif" );
- }
- }
- );
-
- this.images = new Image [ files.length ];
-
- for ( int i = 0 ; i < files.length ; ++ i ) {
- images [ i ] = Toolkit.getDefaultToolkit().getImage( imagePath + "\\" + files [ i ].getName());
- }
-
- current = 0 ;
- }
-
-
- /**
- * Utilisé par le timer en mode diaporama.
- */
- public void actionPerformed( ActionEvent event ) {
- this.suivant();
- }
-
- /**
- * Afficher une image
- */
- public void paint( Graphics g ) {
- int largeur, hauteur;
- if( files.length > 0 ) {
- largeur = getWidth();
- hauteur = getHeight();
- boolean test = g.drawImage( images [ current ], 0, 0,largeur,hauteur, this );
- }
-
- }
-
- /**
- * Affiche la premiere image.
- */
- public void premier() {
- current = 0 ;
- repaint();
- notifyImageChanged();
- }
-
- /**
- * Affiche la derniere image.
- */
- public void dernier() {
- current = files.length -1 ;
- repaint();
- notifyImageChanged();
- }
-
- /**
- * Affiche l'image suivante.
- */
- public void suivant() {
- if ( loop ) current = ( current + 1 ) % files.length ;
- else current = current == files.length -1 ? current : current + 1 ;
- repaint();
- notifyImageChanged();
- }
-
- /**
- * Affiche l'image precedente.
- */
- public void precedent() {
- current = current == 0 ? files.length -1 : (( current - 1 ) % files.length );
- repaint();
- notifyImageChanged();
- }
- /**
- * Pour arreter le loop ou pour redemarrer
- */
- public void startStop() {
- if( getLoop()) setLoop( false );
- else setLoop( true );
- }
-
- /** Chemin vers l'image a afficher */
- protected String imagePath ;
- protected Image image ;
- protected File [ ] files ;
- protected int current ; // the current file displayed.
-
-
- /**
- * propriete pour indiquer si on doit boucler ou non.
- */
- protected boolean loop ;
-
- public boolean getLoop() { return loop ; }
- public void setLoop( boolean value ) {
- loop = value ;
-
- if ( loop ) timer.restart(); // Reconfigurer le timer.
- else timer.stop();
- }
-
- /**
- * Valeur de la temporisation en mode diaporama.
- */
- protected int tempo ;
-
- public int getTempo() { return tempo ; }
- public void setTempo( int value ) {
- tempo = value ;
- this.timer.setDelay( tempo );
- }
-
- /**
- * Accesseur & modificateur pour le repertoire d'images
- */
- public void setChemin(String newImagePath) {
- String OldImagePath = imagePath;
- imagePath = newImagePath;
- propertyChangeListeners.firePropertyChange("Chemin des Images", OldImagePath, newImagePath);
- load();
- }
-
- public String getChemin() { return imagePath ; }
-
- /**
- * Gestion d'evenements java bean. Changement d'image.
- */
-
- protected Vector listeners ;
- private transient PropertyChangeSupport propertyChangeListeners = new PropertyChangeSupport(this);
-
- public synchronized void removePropertyChangeListener(PropertyChangeListener l) {
- super.removePropertyChangeListener(l);
- propertyChangeListeners.removePropertyChangeListener(l);
- }
-
- public synchronized void addPropertyChangeListener(PropertyChangeListener l) {
- super.addPropertyChangeListener(l);
- propertyChangeListeners.addPropertyChangeListener(l);
- }
-
-
- public void addImageChangedListener( ImageChangedListener listener ) {
- if ( listeners == null )
- listeners = new Vector();
-
- if ( ! listeners.contains( listener ))
- listeners.add( listener );
- }
-
- public void removeImageChangedListener( ImageChangedListener listener ) {
- if ( listeners.contains( listener))
- listeners.remove( listener );
- }
-
- public void notifyImageChanged() {
- Image image = images [ current ];
- String path = files [ current ].getParent() + "\\" + files [ current ].getName();
-
- ImageChangedEvent event = new ImageChangedEvent( this, image.getWidth( this ), image.getHeight( this ), path);
- Vector copy ;
-
- synchronized ( this ) {
- if ( listeners == null ) return ;
- copy = ( Vector ) listeners.clone();
- }
-
- Iterator iter = copy.iterator();
-
- while ( iter.hasNext()) {
- ImageChangedListener listener = ( ImageChangedListener ) iter.next();
- listener.imageChanged( event );
- }
- }
-
- }
|
|