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 :

Comment defiler une BufferedImage a partir d'une zone precise


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut Comment defiler une BufferedImage a partir d'une zone precise
    salut , en partant d'une bufferedimage dessinée dans un graphics2d ( LE TOUT DANS UN JPanel ) je me propose de faire des translations sur l'image selon des valeurs venant d'un jspinner par exemple ainsi selon la valeur je parcours l'axe des X et j'affiche la meme image a partir de cette position ...l'affichage donc varie selon la valeur de X ..il ne s'agit pas de faire de translation mais de defiler l'image sur l'ecran selon la valeur de X qui varie d'une valuer min a une valeur mx...donc comment on peut reafficher l'image en tenant compte de la nouvelel position a cahque fois!! je sais que l'image est stockee sous forme d'un tableau ou raster comment on peut exploiter cela pour faire cet affichage

    merci

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Euh, dans ton cas mieux vaut stocker ton image en dehors de ton panel et la redessiner au fur et à mesure (grossomodo tu crées une classe contenant une image et les coordonnées où cette image doit être affichée).
    Puis tu affectes au coordonnées les modifications que tu as sur le spinner puis tu redessine l'image en appelant un repaint()

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    pourrais tu mieux expliquer ta demarche stp? et pourquoi la mienne n'est pas optimale
    merci

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Le raster contient les infos concernant les pixels dans l'image, mais surement pas les infos de position de l'image dans un panel, faut pas rêver non plus ce serait trop beau.

    Grosso modo il faut que tu ais les informations de positionnement de l'image stockeés quelquepart dans ton code.

    Et grosso moddo à chaque fois qu'un changement de position est effectué tu redessine ton panel (et donc l'image dessus en fontion des informations de positionnement que tu as stockées.

    ça donnerait quelque chose dans ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    public class MyImagePanel extends JPanel {
     
        private int x;
        private int y;
        private BufferedImage img;
     
     
        /**
         * @param x
         * @param y
         * @param img
         */
        public MyImagePanel(int x, int y, BufferedImage img) {
            super();
            // TODO Auto-generated constructor stub
            this.x = x;
            this.y = y;
            this.img = img;
        }
     
     
        public BufferedImage getImg() {
            return img;
        }
     
     
        public void setImg(BufferedImage img) {
            this.img = img;
            SwingUtilities.invokeLater(repaint());
        }
     
     
        public int getX() {
            return x;
        }
     
     
        public void setX(int x) {
            this.x = x;
     
            SwingUtilities.invokeLater(repaint());
        }
     
     
        public int getY() {
            return y;
        }
     
     
        public void setY(int y) {
            this.y = y;
            SwingUtilities.invokeLater(repaint());
        }
     
        @Override
        protected void paintComponent(Graphics arg0) {
            // TODO Auto-generated method stub
            arg0.drawImage(img,x,y,null);
            super.paintComponent(arg0);
        }
    }
    Puis tu fais du setX ou setY avec la valeur de ton spinner et basta

    Si tu veux faire des animation, tu n'as qu'a faire une suite d'appels à setX et ça devrai faire l'affaire

  5. #5
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Sinon, je ne sais pas le but de ton logiciel, mais tu peux mettre ton image (qui est par exemple ton Panel) dans un JScrollPane, et ça te fait des ascenseurs, des barres de défilement

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/10/2010, 11h46
  2. Réponses: 2
    Dernier message: 05/03/2010, 14h15
  3. Comment extraire le mois à partir d'une date?
    Par toumoham dans le forum Paradox
    Réponses: 1
    Dernier message: 17/05/2006, 13h37
  4. Réponses: 2
    Dernier message: 03/02/2006, 16h21
  5. [C#] Comment lancer un .doc à partir d'une WebForm ?
    Par patlemagnifik dans le forum ASP.NET
    Réponses: 10
    Dernier message: 06/01/2006, 23h38

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