darkspoilt | Bonjour mon main foire je ne sais pas pkoi
si quelqu'un peut m'aider merci d'avance
J'ai trouvé comment l'utiliser j'ai essayé ca
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.*;
- import java.lang.*;
- import java.lang.reflect.*;
- import java.lang.Object.*;
- import java.beans.SimpleBeanInfo;
- /**
- * La classe BeanInfo contient des informations sur un bean et possède plusieurs
- * méthodes pour les obtenir.
- */
- public class ViewerBeanInfo extends SimpleBeanInfo {
-
- String iconColor16x16Filename;
- String iconColor32x32Filename;
- String iconMono16x16Filename;
- String iconMono32x32Filename;
-
- /* le main*/
- public static void main(String args[]) throws Exception {
-
- ViewerBeanInfo bi = new ViewerBeanInfo();
- MethodDescriptor[ ] unMethodDescriptor;
-
- System.out.println("index propiete par defaut : " + bi.getDefaultPropertyIndex());
-
- System.out.println("index evenement par defaut : " + bi.getDefaultEventIndex());
-
- BeanDescriptor desc = bi.getBeanDescriptor();
- System.out.println("Nom du bean : " + desc.getName());
- System.out.println("Classe du bean : " + desc.getBeanClass());
- System.out.println("" );
-
- PropertyDescriptor[ ] propertyDescriptor = bi.getPropertyDescriptors();
- for (int i=0; i<propertyDescriptor.length; i++) {
- System.out.println(" Nom propriete : " +
- propertyDescriptor[i].getName());
- System.out.println(" Type propriete : "
- + propertyDescriptor[i].getPropertyType());
- System.out.println(" Getter propriete : "
- + propertyDescriptor[i].getReadMethod());
- System.out.println(" Setter propriete : "
- + propertyDescriptor[i].getWriteMethod());
- System.out.println("" );
- }
- System.out.println("" );
- System.out.println("" );
-
- EventSetDescriptor[ ] unEventSetDescriptor = bi.getEventSetDescriptors();
- for (int i = 0; i < unEventSetDescriptor.length; i++) {
- System.out.println(" Nom evt : "
- + unEventSetDescriptor[i].getName());
- System.out.println(" Methode add evt : " +
- unEventSetDescriptor[i].getAddListenerMethod());
- System.out.println(" Methode remove evt : " +
- unEventSetDescriptor[i].getRemoveListenerMethod());
- unMethodDescriptor = unEventSetDescriptor[i].getListenerMethodDescriptors();
- for (int j = 0; j < unMethodDescriptor.length; j++) {
- System.out.println(" Event Type: " + unMethodDescriptor[j].getName());
- }
- }
- System.out.println("" );
-
- }
- /**
- * Constructeur par defaut
- */
- public ViewerBeanInfo() {
- super();
- }
- /**
- * Retourne l'objet descripteur du bean
- */
- public BeanDescriptor getBeanDescriptor() {
- try {
- Class monBeanClasse = Class.forName("diapo.Viewer" );
- Class customizerClass = monBeanClasse.getSuperclass();
- BeanDescriptor desc = new BeanDescriptor(monBeanClasse,customizerClass);
- desc.setDisplayName("Viewer" );
-
- return desc;
-
- } catch(ClassNotFoundException ex) {
- ex.printStackTrace();
- return null;
- }
-
-
-
- }
- /**
- * Retourne l'index des propriétés par défaut
- */
- public int getDefaultPropertyIndex() {
- return 2;
- }
- /**
- * Retourne l'index des événements par défaut
- */
- public int getDefaultEventIndex() {
- return 0;
- }
- /**
- * Retourne les descripteurs de l'ensemble d'événements.
- */
- public EventSetDescriptor [] getEventSetDescriptors() {
- try {
- Class monBeanClasse = Class.forName("diapo.Viewer" );
- Class monImageChangedListener = Class.forName("diapo.ImageChangedListener" );
-
- EventSetDescriptor imageEvent = new EventSetDescriptor(monBeanClasse,
- "ImageChangedEvent",
- monImageChangedListener,
- new String [] {"imageChanged"},
- "addImageChangedListener",
- "removeImageChangedListener" );
- imageEvent.setDisplayName("Changement d\'image" );
-
- EventSetDescriptor[] esd = new EventSetDescriptor[] {imageEvent};
- return esd;
- } catch(IntrospectionException ex) {
- ex.printStackTrace();
- return null;
- } catch(ClassNotFoundException ex) {
- ex.printStackTrace();
- return null;
- }
- }
- /**
- * Retourne les descripteurs de propriétés.
- */
- public PropertyDescriptor[] getPropertyDescriptors() {
- try {
- Class monBeanClasse = Class.forName("diapo.Viewer" );
- PropertyDescriptor _Tempo = new PropertyDescriptor("Tempo",
- monBeanClasse, "getTempo", "setTempo" );
- _Tempo.setDisplayName("Temporisation en mode diaporama" );
- _Tempo.setShortDescription("temporisation" );
-
- PropertyDescriptor _Loop = new PropertyDescriptor("Loop", monBeanClasse,
- "getLoop", "setLoop" );
- _Loop.setDisplayName("Propiete pour indiquer pour boucler ou non" );
- _Loop.setShortDescription("loop" );
-
- PropertyDescriptor _Chemin = new PropertyDescriptor("imagePath", monBeanClasse,
- "getChemin", "setChemin" );
- _Chemin.setDisplayName("Chemin d'accés des images" );
- _Chemin.setShortDescription("repertoire" );
- _Chemin.setBound(true);
-
- PropertyDescriptor[] pds = new PropertyDescriptor[] {
- _Tempo,
- _Loop,
- _Chemin};
- return pds;
- } catch(IntrospectionException ex) {
- ex.printStackTrace();
- return null;
- } catch(ClassNotFoundException ex) {
- ex.printStackTrace();
- return null;
- }
-
- }
- /**
- * Retourne les descripteurs des méthode
- */
- public MethodDescriptor [] getMethodDescriptors() {
- try {
- Class monBeanClasse = Class.forName("diapo.Viewer" );
- MethodDescriptor _Suivant = new MethodDescriptor(
- monBeanClasse.getDeclaredMethod("suivant",null));
- _Suivant.setDisplayName("Image suivante" );
-
- MethodDescriptor _Precedent = new MethodDescriptor(
- monBeanClasse.getDeclaredMethod("precedent", null));
- _Precedent.setDisplayName("Image precedente" );
-
- MethodDescriptor _Premier = new MethodDescriptor(
- monBeanClasse.getDeclaredMethod("premier", null));
- _Premier.setDisplayName("Premiere image" );
-
- MethodDescriptor _Dernier = new MethodDescriptor(
- monBeanClasse.getDeclaredMethod("dernier", null));
- _Dernier.setDisplayName("Derniere image" );
-
- MethodDescriptor _startStop = new MethodDescriptor(
- monBeanClasse.getDeclaredMethod("StartStop", null));
- _startStop.setDisplayName("Arret du bouclage du diaporama" );
-
-
- MethodDescriptor [] md = new MethodDescriptor [] {_Suivant,
- _Precedent,
- _Premier,
- _Dernier,
- _startStop};
- return md;
- } catch(ClassNotFoundException ex) {
- ex.printStackTrace();
- return null;
- } catch(NoSuchMethodException ex) {
- ex.printStackTrace();
- return null;
- }
- }
- /**
- * Retourne l'icône spécifiée par le bean
- */
- public java.awt.Image getIcon(int iconKind) {
- switch (iconKind) {
- case ViewerBeanInfo.ICON_COLOR_16x16:
- return iconColor16x16Filename != null ? loadImage(iconColor16x16Filename) : null;
- case ViewerBeanInfo.ICON_COLOR_32x32:
- return iconColor32x32Filename != null ? loadImage(iconColor32x32Filename) : null;
- case ViewerBeanInfo.ICON_MONO_16x16:
- return iconMono16x16Filename != null ? loadImage(iconMono16x16Filename) : null;
- case ViewerBeanInfo.ICON_MONO_32x32:
- return iconMono32x32Filename != null ? loadImage(iconMono32x32Filename) : null;
- }
- return null;
- }
- }
|
mais j'ai ce message d'erreur la
Code :
- index propiete par defaut : 2
- java.lang.ClassNotFoundException: diapo.Viewer
- at java.net.URLClassLoader$1.run(Unknown Source)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.net.URLClassLoader.findClass(Unknown Source)
- at java.lang.ClassLoader.loadClass(Unknown Source)
- at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
- at java.lang.ClassLoader.loadClass(Unknown Source)
- at java.lang.ClassLoader.loadClassInternal(Unknown Source)
- at java.lang.Class.forName0(Native Method)
- at java.lang.Class.forName(Unknown Source)
- at ViewerBeanInfo.getBeanDescriptor(ViewerBeanInfo.java:100)index evenement par defaut : 0
- at ViewerBeanInfo.main(ViewerBeanInfo.java:53)
- Exception in thread "main" java.lang.NullPointerException
- at ViewerBeanInfo.main(ViewerBeanInfo.java:54)
|
et voila le bean que l'utilise
si quelqu'un peut me dire pkoi ca ne fonctionne pas 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:\Test\" ;
- 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 );
- }
- }
-
- }
|
Message édité par darkspoilt le 11-12-2007 à 10:57:35
|