utilisation d'un bean dans une fenêtre java

utilisation d'un bean dans une fenêtre java - Java - Programmation

Marsh Posté le 18-12-2007 à 16:01:20    

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 :
  1. import javax.swing.* ;
  2. import java.awt.* ;
  3. import java.awt.event.* ;
  4. import javax.swing.event.* ;
  5. import java.net.URL ;
  6. import java.io.* ;
  7. import java.util.* ;
  8. import java.awt.image.*;
  9. import java.beans.*;
  10. /**
  11. * Une classe qui permet d'affiche une image dans un composant graphique.
  12. *  A utiliser dans un bean et une beanbox.
  13. */
  14. public class Viewer extends Canvas implements Serializable, ActionListener,ImageObserver {
  15.    
  16.     /** Le timer pour le mode diaporama. */
  17.     protected javax.swing.Timer timer ;
  18.    
  19.     /** Un tableau pour stocker les images a afficher. */
  20.     protected Image [] images ;
  21.    
  22.     /** Commence par initialiser le chemin vers l'image a afficher.
  23.      */
  24.     public Viewer() {
  25.         super();
  26.         setSize( 160, 90 );
  27.         imagePath = "D:\images\" ;
  28.         load();
  29.         tempo = 2 * 1000 ;
  30.         loop = true ;
  31.         timer = new javax.swing.Timer( tempo, this );
  32.         timer.setRepeats( true );
  33.         timer.start();
  34.     }
  35.    
  36.     /**
  37.      * Charge toutes les images du repertoire dans lengthtableau d'Images.
  38.      */
  39.     public void load() {
  40.         // Recupere les noms des fichers.
  41.         files = new File( imagePath ).listFiles
  42.                 (   new FilenameFilter() {
  43.             public boolean accept( File dir, String name ) {
  44.                 return name.endsWith( ".jpg" ) || name.endsWith( ".gif" );
  45.             }
  46.         }
  47.         );
  48.        
  49.         this.images = new Image [ files.length ];
  50.        
  51.         for ( int i = 0 ; i < files.length ; ++ i ) {
  52.             images [ i ] = Toolkit.getDefaultToolkit().getImage( imagePath + "\\" + files [ i ].getName());
  53.         }
  54.        
  55.         current = 0 ;
  56.     }
  57.    
  58.    
  59.     /**
  60.      * Utilisé par le timer en mode diaporama.
  61.      */
  62.     public void actionPerformed( ActionEvent event ) {
  63.         this.suivant();
  64.     }
  65.    
  66.     /**
  67.      * Afficher une image
  68.      */
  69.     public void paint( Graphics g ) {
  70.         int largeur, hauteur;
  71.         if( files.length > 0 ) {
  72.             largeur = getWidth();
  73.             hauteur =  getHeight();
  74.             boolean test = g.drawImage( images [ current ], 0, 0,largeur,hauteur, this );
  75.         }
  76.        
  77.     }
  78.    
  79.     /**
  80.      * Affiche la premiere image.
  81.      */
  82.     public void premier() {
  83.         current = 0 ;
  84.         repaint();
  85.         notifyImageChanged();
  86.     }
  87.    
  88.     /**
  89.      * Affiche la derniere image.
  90.      */
  91.     public void dernier() {
  92.         current = files.length -1 ;
  93.         repaint();
  94.         notifyImageChanged();
  95.     }
  96.    
  97.     /**
  98.      * Affiche l'image suivante.
  99.      */
  100.     public void suivant() {
  101.         if ( loop ) current = ( current + 1 ) % files.length ;
  102.         else current = current == files.length -1 ? current : current + 1 ;
  103.         repaint();
  104.         notifyImageChanged();
  105.     }
  106.    
  107.     /**
  108.      * Affiche l'image precedente.
  109.      */
  110.     public void precedent() {
  111.         current = current == 0 ? files.length -1  : (( current - 1 ) % files.length );
  112.         repaint();
  113.         notifyImageChanged();
  114.     }
  115.     /**
  116.      * Pour arreter le loop ou pour redemarrer
  117.      */
  118.     public void startStop() {
  119.         if( getLoop()) setLoop( false );
  120.         else setLoop( true );
  121.     }
  122.    
  123.     /** Chemin vers l'image a afficher */
  124.     protected String imagePath ;
  125.     protected Image image ;
  126.     protected File [ ] files ;
  127.     protected int current ; // the current file displayed.
  128.    
  129.    
  130.     /**
  131.      * propriete pour indiquer si on doit boucler ou non.
  132.      */
  133.     protected boolean  loop ;
  134.    
  135.     public boolean getLoop() { return loop ; }
  136.     public void setLoop( boolean value ) {
  137.         loop = value ;
  138.        
  139.         if ( loop ) timer.restart(); // Reconfigurer le timer.
  140.         else timer.stop();
  141.     }
  142.    
  143.     /**
  144.      * Valeur de la temporisation en mode diaporama.
  145.      */
  146.     protected int tempo ;
  147.    
  148.     public int getTempo() { return tempo ; }
  149.     public void setTempo( int value ) {
  150.         tempo = value ;
  151.         this.timer.setDelay( tempo );
  152.     }
  153.    
  154.     /**
  155.      * Accesseur & modificateur pour le repertoire d'images  
  156.      */
  157.     public void setChemin(String newImagePath) {
  158.         String OldImagePath = imagePath;
  159.         imagePath = newImagePath;
  160.         propertyChangeListeners.firePropertyChange("Chemin des Images", OldImagePath, newImagePath);
  161.         load();
  162.     }
  163.    
  164.     public String getChemin() { return imagePath ; }
  165.    
  166.     /**
  167.      * Gestion d'evenements java bean. Changement d'image.
  168.      */   
  169.    
  170.     protected Vector listeners ;
  171.     private transient PropertyChangeSupport propertyChangeListeners = new PropertyChangeSupport(this);
  172.    
  173.     public synchronized void removePropertyChangeListener(PropertyChangeListener l) {
  174.         super.removePropertyChangeListener(l);
  175.         propertyChangeListeners.removePropertyChangeListener(l);
  176.     }
  177.    
  178.     public synchronized void addPropertyChangeListener(PropertyChangeListener l) {
  179.         super.addPropertyChangeListener(l);
  180.         propertyChangeListeners.addPropertyChangeListener(l);
  181.     }
  182.    
  183.    
  184.     public void addImageChangedListener( ImageChangedListener listener ) {
  185.         if ( listeners == null )
  186.             listeners = new Vector();
  187.        
  188.         if ( ! listeners.contains( listener ))
  189.             listeners.add( listener );
  190.     }
  191.    
  192.     public void removeImageChangedListener( ImageChangedListener listener ) {
  193.         if ( listeners.contains( listener))
  194.             listeners.remove( listener );
  195.     }
  196.    
  197.     public void notifyImageChanged() {
  198.         Image image = images [ current ];
  199.         String path = files [ current ].getParent() + "\\" + files [ current ].getName();
  200.        
  201.         ImageChangedEvent event = new ImageChangedEvent( this, image.getWidth( this ), image.getHeight( this ), path);
  202.         Vector copy ;
  203.        
  204.         synchronized ( this ) {
  205.             if ( listeners == null ) return ;
  206.             copy = ( Vector ) listeners.clone();
  207.         }
  208.        
  209.         Iterator iter = copy.iterator();
  210.        
  211.         while ( iter.hasNext()) {
  212.             ImageChangedListener listener = ( ImageChangedListener ) iter.next();
  213.             listener.imageChanged( event );
  214.         }
  215.     }
  216.    
  217. }

Reply

Marsh Posté le 18-12-2007 à 16:01:20   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed