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 :

[JScrollPane] Image & JScrollPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Par défaut [JScrollPane] Image & JScrollPane
    Bonjour a tous,
    Je suis en train de coder un programme qui permet de choisir une image dans une base de donnees suivant plusieurs parametres qui creent son nom (FileName). Une fois les parametres choisis, l'image, si elle existe, s'affiche dans une fenetre individuelle. Jusque la, tout va bien. Par contre je voudrais maintenant pouvoir afficher l'image dans une fenetre plus petite : il faudrait donc utiliser un JScrollPane afin de pouvoir visionner l'image sans redimensionner la fenetre. Et c'est la que ca ne va plus !

    Je charge l'image de la maniere suivante :
    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
     
    class AffichageImage extends Canvas 
    {
    	Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    	int largeurEcran = screenSize.width;
    	int hauteurEcran = screenSize.height;
    	Image image;
     
    	public AffichageImage(String url)
    	{
    		image = getToolkit().getImage(url);
    		prepareImage(image, this);
    	}
     
    	public void paint(Graphics g)
    	{
    	g.drawImage(image, 0, 0, this);
    	}
     
    	public boolean imageUpdate(Image image, int info, int x, int y, int l, int h)
    	{
    		if ((info & (WIDTH | HEIGHT)) != 0)
    		{
    			setSize(l, h);
    			getParent().getParent().getParent().getParent().setBounds( (largeurEcran - l) / 2, (hauteurEcran - h) / 2, l+8, h+32 );
    		}
    		if ((info & (ALLBITS)) != 0)
    		{
    			repaint();
    			return false;
    		}
    		else
    		{
    			return true;
    		}
    	}
    }
    (la fenetre est censee apres coup s'adapter a la taille de l'image, ce qui ne semble pas marcher avec le JScrollPane)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    JFrame fenetre = new JFrame(FileName);
    JPanel pan = new JPanel();
    pan.setLayout(new BorderLayout());
    AffichageImage panimg = new AffichageImage(FileName);
     
    JScrollPane NOD = new JScrollPane(panimg); 		                                             
    pan.add(NOD,BorderLayout.CENTER);
     
    fenetre.setContentPane(pan);
    fenetre.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    fenetre.setVisible(true);
    Mes problemes sont les suivants :

    - la taille initiale de la fenetre est "nulle". Je redimensionne la fenetre plus grande mais toujours plus petite que la taille de l image. Les ScrollBar ne sont pas visibles mais elles sont bien presentes a l'extremite droite et tout en bas de l'image. La roulette de la souris me permet bien de descendre tout en bas pour enfin y voir la SrollBar horizontale. En deplacant celle-ci tout a droite, je trouve finalement la ScrollBar verticale ce qui pose deja un premier probleme : Les Scrollbar sont liees a l'image et non a la fenetre si je puis m'exprimer ainsi.

    - A present, je redimensionne la fenetre en une taille telle que l'on soit plus large et plus haut que l'image. On voit donc l'image et le reste de la fenetre est gris, de plus les Scrollbar disparaissent. Je redimensionne la fenetre en prenant une largeur et une hauteur plus petites tout en laissant presente la zone grise : les Scrollbar reapparaissent mais il faut recourir a la meme manipulation que dans mon premier probleme pour les mettre visuellement en evidence. En bougeant tres legerement la Scrollbar horizontale, je remarque que la zone grise passe par dessus la Scrollbar verticale, et vice versa. Finalement, lorsque je redimensionne la fenetre en une taille plus petite que celle de l'image, les Scrollbar me permettent de revenir jusqu'au lieu dans la zone grise ou j'avais dernierement dimensionne la fenetre.

    Ainsi :
    - mes Scrollbar semblent attachees a l'image (respectivement a la zone grise) et se deplacent avec celle-ci, ou alors l'image (resp zone grise) passe par dessus les Scrollbar.
    - une fois que la fenetre a ete dimensionnee dans la zone grise, le point de reference pour les Scrollbar devient l'endroit ou l'extremite basse droite de la fenetre dans la zone grise etait presente lorsque celle ci est redimensionnee a une echelle plus petite.

    En esperant avoir ete assez clair et precis, j'espere que certains d'entre vous auront des suggestions, commentaires, conseils pour m'aider a pallier a ces petits desagrements ^_^

    Merci d'avance

  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
    Tiens, cadeau, c'est tout chaud tout neuf (désolé j'ai pas voulu dupliquer le post): http://www.developpez.net/forums/sho...2&postcount=30

    Penses à chercher sur les forums, d'autres ont probablement (enfin plus que probablement, c'est du fréquent dans le cas présent) eu le même problème, et une solution leur a probablement été fourni.

    Dans ton cas une rechere Image JScrollPane t'amenait à la solution:

    http://www.developpez.net/forums/sea...earchid=983284

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Par défaut
    Merci

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

Discussions similaires

  1. JScrollPane dans un JScrollPane
    Par Hypercube dans le forum Composants
    Réponses: 1
    Dernier message: 28/04/2009, 10h48
  2. Problème conception JScrollPane contenant plusieurs JScrollPane
    Par cnguyen dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 23/03/2009, 15h31
  3. image et jscrollpane
    Par zizou5roni dans le forum Applets
    Réponses: 2
    Dernier message: 05/09/2008, 17h19
  4. Image et jScrollPane
    Par mikef32 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 10/08/2006, 01h03
  5. bouger une image dans une JScrollPane
    Par nonaM1982 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 05/05/2006, 15h48

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