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 :

Avoir un Curseur "Fleche"


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Par défaut Avoir un Curseur "Fleche"
    Bonjour,

    Je cherche à faire un curseur en forme de fleche, comme ca --> (mais en plus beau )

    j'ai bien essayé un :
    setCursor(Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR).

    Manque de pot, je n'ai pas le curseur voulu dans la liste des curseurs prédéfinis.
    Existe t'il des bibliothèques qque part ?
    ou alors vais je devoir définir mon propre graphisme (pitié).

    Merchi
    Richard

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 142
    Par défaut
    Salut,
    Le plus simple selon moi, c'est que tu cherche sur internet une image en format .cur de curseur en forme de fleche. Avec google, tu devrais trouver ca. Et après tu fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Toolkit tk = Toolkit.getDefaultToolkit();
    Image img = tk.getImage("curseur_fleche.cur");
    Cursor monCurseur = tk.createCustomCursor(img, new Point(16, 16), "curseur fleche"); 
    this.setCursor(monCurseur);
    Tu peux aussi le dessiner toi même avec visual studio par exemple.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Par défaut
    coucou,

    Bon, je suis effectivement parti sur une creation perso (ca en jette).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Toolkit tk = Toolkit.getDefaultToolkit();
        Image tmp = tk.getImage("pointeur_gauche.gif");
        Cursor pointeur_gauche = tk.createCustomCursor(tmp,new Point(5,0), "Pointeur Gauche");
    Mais... probleme...
    Le curseur à une taille supérieur à la taille affichée dans mon explorateur d'image.
    Y aurait il un moyen de retailler la taille de ce curseur ?

    Merci
    R

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 142
    Par défaut
    salut,

    je comprends pas bien. Dans ton code, tu as mis
    Cursor pointeur_gauche = tk.createCustomCursor(tmp,new Point(5,0), "Pointeur Gauche");
    Le 0 dans (5,0), c'est voulu ou c'est une faute de frappe????? je pense que tu ne peux pas créer un curseur de largeur 0!!!

    Sinon, je comprends pas bien ta question. Tu definis la taille de ton curseur dans les parentheses après 'Point'. Donc tu peux mettre la taille que tu veux.

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Par défaut
    je ne crois pas que les dimensions fournies lors de la creation du customcursor soient les dimensions de ce curseur.
    Ce que j'en ai compris (bien peu, certes), c'est qu'il s'agit du hotspot (l'endroit qui compte quand tu click).

    +r

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 142
    Par défaut
    autant pour moi.....
    Quand j'ai utilisé ce bout de code, ca n'avait pas d'importance et j'ai compris de travers.... Désolée!

    Par contre, pour ton problème de taille, as tu essayé de redimensionné ton image en format .gif?? C'est peut etre pas tres propre comme solution mais ca marche peut etre....

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Par défaut
    Disons que mon .gif fait 16 pixels de large (et est affiché avec 32 pixels dans mon app).
    Si je retaille 16 pixel en 8 pixels, je perds une définition monstrueuse...

    L'idée est bonne, mais avec des images de cette taille... bof.
    +R+

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 142
    Par défaut
    ?????

    Alors, désolée....je peux pas vraiemnt d'aider. Je ne connais pas de fonction qui fait ca!

  9. #9
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Par défaut
    Bon allez,

    je m'auto réponds

    En fait, l'image à partir de laquelle on créé le curseur doit avoir 32/32 comme dimension.
    Apparemment, la taille du curseur est une taille définie par l'OS. Il faut donc s'y adapter en créant une image d'une taille adéquat.

    Voilou
    R

  10. #10
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Voir Toolkit.getBestCursorSize()
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  11. #11
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Par défaut
    Certes, mais ca n'adapte pas le curseur, ca renvoie juste la taille de "l'image curseur" attendue par le systeme.
    Ce qui veut dire qu'une application un peu portable doit embarquer plusieurs taille de chacun de ses curseurs propriétaires.

    R

  12. #12
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Tout à fait mais dans le cas où la taille retournée est plus grande que celle de ton image de curseur, tu peux allouer une image plus grande dans la quelle tu recopies l'image orignale (sans pour autant l'aggrandir : une copie à la même échelle => donc au final tu rajoutes des pixels transparents en plus).

    Ou au contraire si la taille est plus petite tu peux la rétrécir (un vrai scale cette fois) mais en utilisant un algorithme qui fournit un résultat de meilleure qualité que celui par défaut (voir RenderingHints.KEY_INTERPOLATION et RenderingHints.VALUE_INTERPOLCATION_BICUBIC ou RenderingHints.VALUE_INTERPOLATION_BILINEAR).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  13. #13
    Membre confirmé
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Par défaut
    Citation Envoyé par bouye
    une copie à la même échelle => donc au final tu rajoutes des pixels transparents en plus).
    Excellente idée.
    Pour le rétrécissement, je passe mon tour pour cette fois , les algos m'effrayant un peu.

    Merci
    R

  14. #14
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Oh mais tu n'as vraiment rien de spécial à faire pour spécifier l'algorithme à utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BufferedImage source = ...
    
    BufferedImage destination = new BufferedImage(newWidth, newHeight, source.getType());
    Graphics2D graphics = destination.createGraphics();
    graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);
    //graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    //graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOUR);
    graphics.drawImage(source, newWidth, newHeight, null);
    graphics.dispose();
    Après si le résultat est trop flou à ton gout il t'es possible d'utiliser une ConvolveOp pour effectuer un filtre de type sharpen/netteté. Là par contre ca demande un peu plus de recherches (et de test) pour trouver les valeurs à mettre dans le kernel (matrice 3x3) à utiliser pour l'opération.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  15. #15
    Membre éprouvé Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Par défaut
    Merci pour ces infos bien utiles, ca permet de fignoler les projets

    Un Calédonien !!! Chanceux !!

    PS: Va faire un tour au lagon de ma part plz, ca fais 10 ans que je n'y suis pas retourné *nostalgie*

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

Discussions similaires

  1. [DBLookupComboBox] Avoir un curseur sur une DBLookupCoboBox
    Par webbulls dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/05/2004, 11h52
  2. [Linux]Avoir le curseur qui clignote
    Par Yabo dans le forum C
    Réponses: 2
    Dernier message: 06/07/2003, 13h46

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