Astuce pour utiliser un fichier CUR comme curseur

Aller en bas

Astuce pour utiliser un fichier CUR comme curseur Empty Astuce pour utiliser un fichier CUR comme curseur

Message  Gus le Dim 24 Avr - 12:42

Les fichiers CUR (format Windows pour les curseurs) sont relativement semblables aux fichiers ICO (format Windows pour les icônes). Dans un cas comme dans l'autre, une astuce pour lire l'image du fichier en Java consiste à utiliser la représentation icône du fichier renvoyée par Windows.

Icon icon = FileSystemView.getFileSystemView().getSystemIcon(file);

Une fois qu'on a l'icône, on la transforme en objet Image grâce à la méthode :

Code:
private Image iconToImage(Icon icon)   

      if(icon instanceof ImageIcon) return ((ImageIcon)icon).getImage();
      BufferedImage image = new BufferedImage(icon.getIconWidth(),icon.getIconHeight(),BufferedImage.TYPE_INT_RGB);
      icon.paintIcon(null,image.getGraphics(),0,0);
      return image;
}

Enfin, on utilise la méthode createCustomCursor du Toolkit comme ceci :

Cursor cursor = Toolkit.getDefaultToolkit().createCustomCursor(image,new Point(0,0),"X");

Le tour est joué ! Bon, il reste juste un petit soucis avec le dimensionnement du curseur, que je trouve un peu gros.
Si vous avez des idées, n'hésitez pas !



Dernière édition par Gus le Lun 25 Avr - 15:23, édité 1 fois
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

Voir le profil de l'utilisateur http://www.gus05.com

Revenir en haut Aller en bas

Astuce pour utiliser un fichier CUR comme curseur Empty Re: Astuce pour utiliser un fichier CUR comme curseur

Message  william44290 le Lun 25 Avr - 15:21

j'utilise ce code pour mes images :
Code:
      public Icon ImageIcon(Image img,int coef){
                Icon icon=null;
                if (img!=null){
                        Image tmpIm=img.getScaledInstance(Gp.HEIGHTCHAR*coef,Gp.HEIGHTCHAR*coef,Image.SCALE_AREA_AVERAGING);
                        if (tmpIm!=null){
                                icon=new ImageIcon(tmpIm);
                        }
                        img=null;
                        tmpIm=null;
                }
                return icon;
        }
}

william44290

Messages : 6
Date d'inscription : 23/10/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum