Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2981 connectés 

 


Dernière réponse
Sujet : [java] Questions de debutant...
gfive Bah, l'objet ImageObserver (enfin, l'interface, plutôt) permet d'avoir des évènements sur les images en train de se charger...Mais ça m'étonne, ton problème : avec le MediaTracker, ça marche nickel, même en téléchargeant les images sur le réseau...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
gfive Bah, l'objet ImageObserver (enfin, l'interface, plutôt) permet d'avoir des évènements sur les images en train de se charger...Mais ça m'étonne, ton problème : avec le MediaTracker, ça marche nickel, même en téléchargeant les images sur le réseau...
Rawhead rex Bon ca remonte a sacrement longtemps mais tu peut te debrouiller pour afficher l'image quand elle a finie d'etre chargee, en utilisant une bufferisation dans une variable image et ensuite faire un draw de la variable.
Avec ca t'as un moyen de controler si l'image a finit d'etre chargee, mais je sais plus exactement comment(arghh on oublie tout :().
gfive Comment tu charges tes images?? Tu utilises un MediaTracker?? Pasque sinon, il arrive qu'il les affiche avant qu'elles ne soient complètement chargées...Sinon, pour le slider....A sait pôs!
darklord22 gfive, merci pour ta réponse.
 
J'ai déjà utiliser cette méthode pour mon applet mais on a des problèmes sous Linux. Les coordonées sont foireuses et les images ne sont pas du tout correctes (il manque plein de partie).
 
Bref, c'est le caca et je me disais que travailler avec une image serait plus propre. Mais bon clair que je suis pas motivé à jouer avec les coordonées.
 
Sinon j'ai un JSlider dans mon applet et lorsque l'utilisateur essaie de modifier la valeur, JRE se crashe avec un AccessException (sous linux uniquement, no prob sous win)
 
Comprends pas...
gfive Bah....le plus simple, à mon sens, pour pas te faire chier, c'est de créer une classe ImageButton (si tu es en AWT, sinon, en Swing, ça existe, mais je me souviens plus le nom), qui fonctionne comme un bouton, et qui met ton image dessus, sans bordures ni rien, comme ça, t'as pas à te faire chier avec des gestions de cooredonnées....
 
J'avais fait ça à un moment en Swing et en AWT, avec aussi des objets Border me permettant de 'coller' des images autour de n'importe quel composant.....Bon, on se fait un peu chier pour découper les images à coups de Gimp ou Photoshop au début, mais le résultat était sympa : l'interface ne laissait apparaîrte aucun élément Swing ou AWT, en dehors des JTable et des JTextArea....
 
'le coup des bordures, je l'ai aussi porté en AWT? mais c un peu plus galère à utiliser)
darklord22 question,
 
j'ai une image représentant, par exemple, une skin winamp
(start, stop, pause, next, previous)
 
Quelqu'un peut me donner un lien m'expliquant clairement et facilement comment gérer les events de la souris pour que lorsque l'utilisateur clicke sur une zone de l'image je sache déterminer ou c'est histoire de savoir ce qu'il veut faire?
 
Euh c'est clair ? :)
gfive Exact, Archangel!! :) C'est comme ça qu'ont crée des composants complexes en AWT!! :D:D Et mine de rien, l'AWT, même si c'est prise de tête, c'est achtement puissant.
archangel

djoul a écrit a écrit :

ok merci, j'vais essayé ca ce midi. Mais qu'est ce qui ne va pas dans ma methode ?  




 
Lorsque tu appelle la méthode drawimage() de g il va dessinner ton image dans g.
 
Puis lorsque tu appelles la méthode paint() en lui passant g il faut savoir que paint ne fait rien, de plus je suis pas sur que le g que tu lui passe corresponde bien à une écran.
 
Car en fait à chaque fois que la zone d'écran doit être dessiner, ton application ou applet appelle la méthode paint en lui passant un objet Graphics qui correspond à la zone d'écran. Il faut donc redéfinir cette méthode pour dire ce qu'on veut dessiner.
 
Voilà
@+

djoul ok merci, j'vais essayé ca ce midi. Mais qu'est ce qui ne va pas dans ma methode ?
archangel Effectivement ta méthode n'est pas celle que j'aurais utilisé.
 
Il faut que tu fasses un truc du style suivant (attention ça fait longtemps que j'ai pas pratiqué il peut y avoir des erreurs)
 

Code :
  1. class MonPlateau extends Canvas
  2. {
  3.    public void paint(Graphics g)
  4.    {
  5.       // tu dessines ton images
  6.       g.drawImage(ip, 0, 0, null);
  7.    }
  8. }
  9. Puis tu fais
  10. principal.add(instanceDeMonPlateau,BorderLayout.CENTER);

djoul J'ai avancé un peu : effectivement, je suis passé par un Canvas (et même un objet Graphics...). En gros, et de tete (suis au boulot...) (g Graphics, ip Image, plateau Canvas, principal Container):
 
g.drawImage(ip, 0, 0, null);
plateau.paint(g);
principal.add( plateau, BorderLayout.CENTER);
 
ca compile, mais ca ne s'affiche pas. Est ce un probleme de rafraichissement, ma methode n'est pas bonne ?
gfive c'est pas aussi simple...Le Layout ne demande pas à être rempli, d'abord, c'est un Component qu'on remplit, le Layout ne fait que dire au Component comment ranger tes éléments graphiques.
 
Pour afficher une image, et rendre des zones 'actives' il va te falloir bosser un peu plus : dessiner l'image sur un objet (un JPanel ou un Canvas voir la doc), et ensuite gérer les évènements de souris : quand tu as un click, tu récupère les coordonnées du pointeur, et tu agis en fonction....
 
Ouala!!
 
(bon, y'a peut être plus simple, mais ça fait une éternité que je suis obligé de me contenter de l'AWT (applet oblige) alors c'est une solution AWT)
djoul up
djoul D'un coté, j'ai un objet Image nommé plateau qui ne demande qu'a etre affiché, de l'autre coté un BorderLayout.CENTER qui ne demande qu'a etre rempli, comment concilier les 2 ?
 
Comment, ensuite, definir des zones dans cette image (qui seront selectionné a la souris)
 
mârci

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR