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

2D Java Discussion :

Zoomer sur un JPanel


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 2
    Par défaut Zoomer sur un JPanel
    bonjour tout le monde, voila notre probléme

    On a realisé une application de dessin avec java et on voudrais savourv

    comment effectuer un zoom

    je precise qu'on a utilisé un composant qui herite de la classe JPanel

    et que la methode draw a un aprametre de type Graphics.

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    bonjour (bienvenue sur le forum),

    je dirais que tout dépend des éléments qui sont dessinés, et de la manière que c'est fait.

    Mais dans l'absolu, il te faut une variable zoom, que tu utilise afin de calculer les grandeurs à afficher par rapport aux grandeurx réelles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    float zoom = .5f;
    g.fillRect((int)(x,y,lobjetadessiner.largeur()*zoom),(int)(lobjetadessiner.hauteur()*zoom) );
    enfin bref, un code dans le genre

  3. #3
    Membre expérimenté Avatar de bidi
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 262
    Par défaut
    mais je dirais qu'il y a plus simple ;-)
    Tu peux utiliser la méthode scale de Graphics2D
    Simplement, dans tu récupère ton object Graphics (dans ton paint ou paintComponent)
    et tu le cast en Graphics2D ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void paint(Graphics g) {
    Grpahics2D g2 = (Graphics2D) g;
    .
    .
    .
    }
    Après ça, tu as une foultitude :-) de fonctionalités suplémentaires sur ton
    graphics dont le fameux "scale" qui prend 2 double en paramètre, un pour le
    "zoom" sur l'axe des x, l'autre pour le "zoom" sur l'axe des y
    Donc si tu veux un zoom uniforme, tu prends les 2 même valeurs...
    Voilà ;-)

  4. #4
    Candidat au Club
    Inscrit en
    Décembre 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 2
    Par défaut
    Merci pour l'astuce ça marche très bien...à bien tôt

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

Discussions similaires

  1. Bouger et zoomer sur une image dans un JPanel
    Par buenol dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 23/11/2009, 22h04
  2. Drag & Drop sur un JPanel et actions suivant le drop
    Par ceres02 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 03/03/2006, 21h46
  3. Réponses: 4
    Dernier message: 27/02/2006, 16h32
  4. JLabel et keylistener sur un JPanel
    Par Azanael dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 19/06/2005, 21h41
  5. Listener sur un JPanel
    Par ptitelfe dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 27/03/2004, 13h14

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