IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

comment changer le curseur par defaut?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Par défaut comment changer le curseur par defaut?
    bonjour,
    j'ai besoin de changer le curseur par defaut, pour cela j'utilise 4 images png 18x18.
    j'ecrit ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        private void SelectButtonActionPerformed(java.awt.event.ActionEvent evt) {                
            //Cursor:
            setCursor(SelectCursor);
        }
     
    [...]
     
            Image SelectIc=(new javax.swing.ImageIcon(getClass().getResource("/image/select.PNG"))).getImage();
     
     
            Toolkit tk = Toolkit.getDefaultToolkit();
            Cursor SelectCursor = tk.createCustomCursor(SelectIc, new Point(18, 18), "");
    le code fonctionne, ce qui me pose probleme, c'est la taille de l'icone, ce n'est pas la taille du PNG, elle est plus grande, ce qui fait qu'on voit les pixels 1 par 1, et c'est vraiment pas joli. comment puis-je resoudre ceci?
    merci

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 108
    Par défaut
    Tu peux utiliser getBestCursorSize() pour savoir quelle taille de curseur tu vas obtenir à partir de ton image. Ensuite tu crées une image de la bonne taille dans laquelle tu recopies ton image initiale.

    cf. http://www.jguru.com/faq/view.jsp?EID=9958

  3. #3
    Membre éclairé Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Par défaut
    bonjour,
    ça n'a pas aidé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            Toolkit tk = Toolkit.getDefaultToolkit();
            Dimension d = tk.getBestCursorSize(32, 32);
            SelectCursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
            RotateCursor = tk.createCustomCursor(RotateIc, new Point(16,16), "");
            ZoomCursor = tk.createCustomCursor(ZoomIc, new Point(16,16), "");
            SlideCursor = tk.createCustomCursor(SlideIc, new Point(16,16), "");


    à mois que j'ais tout compris à l'envers.
    merci

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 108
    Par défaut
    Euh, appeler la méthode getBestCursorSize() sans se servir de l'info qu'elle donne ne sert évidemment à rien ...
    Dans le lien que j'ai donné, il est expliqué comment créer un curseur ayant la taille dont l'OS a besoin à partir de ton image (en créant une image de la bonne taille puis en copiant ton image dedans)

  5. #5
    Membre éclairé Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Par défaut
    appeler la méthode getBestCursorSize() sans se servir de l'info qu'elle donne ne sert évidemment à rien ...
    en effet!
    Dans le lien que j'ai donné, il est expliqué comment créer un curseur ayant la taille dont l'OS a besoin à partir de ton image (en créant une image de la bonne taille puis en copiant ton image dedans)
    j'ai pas vraiment trouvé, mais j'ai googlé et je suis tombé sur des codes utilisant de getBestCursorSize().
    voici ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Image RotateIc=(new javax.swing.ImageIcon(getClass().getResource("/image/rotate.PNG"))).getImage();
     
            Toolkit tk = Toolkit.getDefaultToolkit();
     
    	Dimension Rodim=tk.getBestCursorSize(18,18) ;
    	Image RotateCu = RotateIc.getScaledInstance(Rodim.width, Rodim.height, Image.SCALE_DEFAULT);
     
            RotateCursor = tk.createCustomCursor(RotateCu, new Point(18,18), "");
    j'ai donc, créé une image, determiné les meilleures dims, redimentionné l'image et en a créé un curseur. or ça donne tjrs la meme chose. ou est le prob?
    merci

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 108
    Par défaut
    L'idée est de ne pas redimensionner l'image :
    - tu utilises getBestCursorSize() pour savoir quelle taille aura ton curseur au final
    - tu crées une image vierge de cette taille
    - tu copies dans cette image vierge ta propre image sans la redimensionner (elle n'occupera qu'une partie de l'autre image)
    - au final tu obtiens une image de la bonne taille avec ta propre image dans sa taille initiale : visuellement un petit curseur, mais qui a quand même la taille demandée par l'OS

    Si tu essayes d'agrandir ton image initiale, tu auras forcément une image pas trop jolie, le redimensionnement d'une image avec peu de pixels ne pouvant donner de bons résultats. Si tu veux essayer d'avoir de meilleurs résultats, tu peux essayer avec Graphics.drawImage() qui peut donner de meilleurs résultats (cf. http://today.java.net/pub/a/today/20...dinstance.html )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. graphique comment changer le nom par defaut de la serie
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/12/2007, 19h01
  2. Réponses: 7
    Dernier message: 11/05/2006, 14h46
  3. Comment démarrer WIN XP par défaut et non Redhat ?
    Par callo dans le forum Administration système
    Réponses: 3
    Dernier message: 20/10/2004, 18h00
  4. [Property] Comment déclarer une chaine par defaut ?
    Par Clorish dans le forum Composants VCL
    Réponses: 8
    Dernier message: 07/09/2004, 22h11
  5. Changer le thème par défaut
    Par Chance666 dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 26/09/2003, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo