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

 



Dernière réponse
Sujet : faire un zoom en java!!
tertulia merci bien je vais essayer ca

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
tertulia merci bien je vais essayer ca
gm_superstar Ben que veux tu savoir de plus ?
 
Voilà quelques pistes à explorer (on suppose que l'image s'affiche dans un JPanel) :
 
Tu associes à ce Jpanel une classe qui gère les évenements souris. Elle peut ressembler à ça :

Code :
  1. class MonListener extends MouseInputAdapter {
  2.     public void mousePressed(MouseEvent e) {debutSélection(e.getX(), e.getY());}
  3.    
  4.     public void mouseDragged(MouseEvent e) {agrandirSélection(e.getX(), e.getY());}
  5.    
  6.     public void mouseReleased(MouseEvent e) {fixerSélection(e.getX(), e.getY());}
  7. }


 
- debutSélection : te sers à initialiser tes variables qui vont délimiter le rectangle de sélection.
- agrandirSélection : gérer cet évenement est optionnel, c'est au cas où tu voudrais dessiner un rectangle en pointillés pour matérialiser ta sélection quand tu déplace la souris.
- fixerSélection : fixe les variables du rectangle de sélection ; calcule le facteur de zoom en effectuant le rapport entre la taille de ce rectangle et la taille de l'image ; appelle repaint().
 
Ensuite repaint() appelle la méthode paintComponent(g) que j'ai redéfinie en haut et qui va se charger d'effectuer le zoom. Il faudra sans doute rajouter quelques instructions pour positionner le coin gauche supérieur de l'image zoomée avec le coin gauche supérieur du JPanel.
 
Après à toi d'ajouter tout ce qui manque, mais le principe est là.

 

[jfdsdjhfuetppo]--Message édité par gm_superstar le 31-05-2002 à 17:28:15--[/jfdsdjhfuetppo]

tertulia ben en fait cette methode (rectangle m'interesse plus)
avec des mouseEvent (click release) qui detecte la position de la souris
et qui zoom du point superieur gauche (click) au point inferieur driot (release)
 
voila donc si t'as des id  
merci
gm_superstar

tertulia a écrit a écrit :

ex: zoom sur un rectangle créée par glissement de souris.



 
Ca par contre c'est plus difficile à faire : tu dois déduire le facteur de zoom de la taille de ton rectangle de sélection par rapport à la taille de l'image, zoomer, et positionner correctement l'image.

gm_superstar Si ton image est une bufferedImage, tu peux placer ça dans la méthode paintComponent() du composant qui contient l'image :
 

Code :
  1. public void paintComponent (Graphics g) {
  2.     Graphics2D g2 = (Graphics2D) g;
  3.     super.paintComponent(g2);
  4.     if (imageCourante != null) {
  5.         if (facteurZoom != 1.0f) {
  6.             AffineTransform transformationZoom = AffineTransform.getScaleInstance(facteurZoom, facteurZoom);
  7.             g2.drawImage(imageCourante, transformationZoom, this);
  8.         } else {
  9.             g2.drawImage(imageCourante, 0, 0, this);
  10.         }
  11.     }
  12. }


 
Avec :
 - facteurZoom un flottant ( 1.0 -> échelle 1:1, 2.0 -> taille double, etc...)
 - imageCourante, ton image en bufferedImage
 
Ensuite il suffit de faire changer facteurZoom avec JSlider ou autre élément graphique.

 

[jfdsdjhfuetppo]--Message édité par gm_superstar le 31-05-2002 à 16:23:59--[/jfdsdjhfuetppo]

tertulia ben je croyais etre assez precis mais bon!!
 
en fait je voudrai pourvoir zoomer sur une fenetre apres avoir cliqué sur bouton_zoom_plus(ou_mois) et que des scrollbar apparaiseent si necessaire!
 
voila j'espere avoir etais plus precis.
 
merci
si vous avez differnetes techniques ca m'interrese
ex: zoom sur un rectangle créée par glissement de souris.
il faudrait peut être décrire un poil plus précisément ce que tu veut.
tertulia comment fait'on un zoom en java?
pour un programme pas en java scipt
merci

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