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

  FORUM HardWare.fr
  Programmation

  faire un zoom en java!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

faire un zoom en java!!

n°148699
tertulia
Posté le 31-05-2002 à 16:03:36  profilanswer
 

comment fait'on un zoom en java?
pour un programme pas en java scipt
merci

mood
Publicité
Posté le 31-05-2002 à 16:03:36  profilanswer
 

n°148706
Profil sup​primé
Posté le 31-05-2002 à 16:09:23  answer
 

il faudrait peut être décrire un poil plus précisément ce que tu veut.

n°148715
tertulia
Posté le 31-05-2002 à 16:16:20  profilanswer
 

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.

n°148723
gm_superst​ar
Appelez-moi Super
Posté le 31-05-2002 à 16:23:22  profilanswer
 

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]

n°148729
gm_superst​ar
Appelez-moi Super
Posté le 31-05-2002 à 16:27:12  profilanswer
 

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.

n°148733
tertulia
Posté le 31-05-2002 à 16:32:02  profilanswer
 

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

n°148788
gm_superst​ar
Appelez-moi Super
Posté le 31-05-2002 à 17:27:03  profilanswer
 

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]

n°148799
tertulia
Posté le 31-05-2002 à 17:37:55  profilanswer
 

merci bien je vais essayer ca


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  faire un zoom en java!!

 

Sujets relatifs
[Java] hérarchie des packagesAccès bases de données en JAVA
[Java] slash doublés pour un paramètre récupéré par ma servletjava vs c++
java + vb : pouerk[JAVA/AWT]mes composant s'affiche pas
[Java] GUI, swing, layout etc[ java / autres ] déclaration de variables.
[Java] Problème de conception lié aux interfacesMy friend Java
Plus de sujets relatifs à : faire un zoom en java!!


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