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 :

grand Canevas & dessin partiel?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Par défaut grand Canevas & dessin partiel?
    bonsoir à tous,

    voilà mon problème, j'ai un Canvas dans un ScrollPan, dont la longueur varie. Elle peut être de 1000 comme de 67 millions... c'est nécessaire et plus ou moins imposé par mon prof. seul hic, quand le Canvas est trop grand, le seul dessin d'une ligne (d'un bout à l'autre) bloc complétement l'application (et c'est normal vu ce que je lui demande). j'aimerais savoir s'il est possible de "dessiner partiellement"... je peux relativement facilement empêcher le dessin des objets qui ne sont pas à l'écran (enfin je suppose), mais si l'objet à dessiner est immense, y'a-t-il un quelconque moyen de ne pas figer l'application ?
    merci beaucoup

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    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 909
    Billets dans le blog
    54
    Par défaut
    Si tu as reellement un objet unique immense, non a priori ce n'est pas possible. Car meme si tu desires utiliser la zone de clip (pour restreindre ce qu'il y a besoin dessiner) ou une image intermedaire (pour n'avoir a dessiner l'objet qu'une seule fois), il faut au moins le dessiner une fois...

    Sinon, les methodes a utiliser sont celles decrites plus haut :

    - se restreindre a dessiner ce qui est dans et ce qui intersecte la zone de clip. Cela evite d'avoir a dessiner des trucs totalement invisibles sur l'ecran. Ca marche tres bien quand on a beaucoup d'objets repartis sur une grande surface. Voir graphics.getClip().

    - dessiner tout ou en partie (voir zone de clip) dans une image qui peut ou pas faire la taille complete du dessin (visiblement pas dans ton cas vu sa taille ENOOOORME) puis dessiner cette image dans le Canvas. Comme ca le rendu de(s) objet(s) n'a lieu qu'une fois et il n'y a besoin de reellement redessiner l'image que quand on scrolle.

    -Vu que le Canvas fait a priori planter le ScrollPane, peut-etre devrais-tu te contenter d'un Canvas de taille normale (la taille apparente du viewport a l'ecran) associe a une ScrollBar : quand on scrolle la barre en fait on ne scrolle pas le Canvas, on se restreint juste a changer la zone affichee (voir zone de clip + translation), ca donne l'impression qu'on a scrolle alors que ce n'est pas vraiment le cas.
    Note : je ne sais pas si c'est aisement faisable en AWT, sinon passer en Swing et utiliser JPanel et JScrollBar).
    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

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 71
    Par défaut
    merci beaucoup pour ta réponse. la 3e solution m'intéresse assez, je vais voir de ce côté

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

Discussions similaires

  1. Erreur EInvalidOperation "Le canevas ne permet pas de dessiner"
    Par bruce-willis dans le forum C++Builder
    Réponses: 14
    Dernier message: 13/12/2008, 18h01
  2. Réponses: 4
    Dernier message: 10/09/2006, 19h06
  3. Dessiner image partiellement transparente
    Par ®om dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 10/07/2006, 10h57
  4. Dessin ne s'affiche pas dans le canevas
    Par Nadjib dans le forum Langage
    Réponses: 3
    Dernier message: 24/03/2006, 21h08

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