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 :

Un JScrollPane qui ne scrolle pas !


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut Un JScrollPane qui ne scrolle pas !
    Bonjour,

    j'utilise un JPanel avec redéfinition de paintComponent() pour dessiner une image.
    lorsque l'image dépasse la taille du JPanel je souhaite pouvoir scroller.
    Je défini donc un JScrollPane auquel j'associe mon JPanel.
    Seulement voilà, malgré que l'image (g.drawImage) soit bien plus grande que le JPanel, je ne puis rien scroller...
    Une idée

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Bonsoir,
    Citation Envoyé par SheikYerbouti
    Seulement voilà, malgré que l'image (g.drawImage) soit bien plus grande que le JPanel, je ne puis rien scroller...
    Une idée
    Est-ce que tu fixes la taille de ton JPanel (via setPreferredSize()) en fonction de la taille de l'image qui y est dessinée ? Car si la taille de ton JPanel ne change pas en fonction de son contenu, il n' a aucune raison pour que le JScrollPane adapte les scrollbars en conséquence.

  3. #3
    Membre expérimenté
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Par défaut
    yep ya 99% de chance que se soit ca

    dans ta redefinition du paintComponent ajoute un appel a une methode qui recalcule la taille du contenu ou alors directement un appel a la methode

  4. #4
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    J'ai beau redimentionner le JPanel à la taille de l'image (soit 800 pixels de large), toujours aucun scroll.
    pourtant j'ai positionné les valeurs du JScrollPane
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
         jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);

  5. #5
    Membre expérimenté
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 230
    Par défaut
    no c'est pas lui qu'il faut bouger mais definir la taille du JPanel avec setPreferedSize et puis ca marche de suite

  6. #6
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par SheikYerbouti
    J'ai beau redimentionner le JPanel à la taille de l'image (soit 800 pixels de large), toujours aucun scroll.
    Bizarre, pourrais-tu poster un peu de code stp ? en particulier un extrait de paintComponent() et quand et comment tu redimensionnes le JPanel.

  7. #7
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Bon, mon panel est une classe qui ettend JPanel

    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
    /*
     * A panel to draw the image
     */
    public class myPanel extends JPanel
    {
      private Image  img = null ;
      private Color  colorBG = null ;
      private int    iImageWidth = 0, iImageHeight = 0 ;
     
      public myPanel()
      {
      }
     
      // set the image
      public void setImage( Image p_image )
      {
        img = p_image ;
        ImageIcon ii = new ImageIcon(img) ;
        iImageWidth  = ii.getIconWidth() ;
        iImageHeight = ii.getIconHeight() ;    
        this.setPreferredSize(new Dimension(iImageWidth,iImageHeight));
        //System.out.println("JPanel size="+this.getPreferredSize())
      }
     
      // set the background color
      public void setBGColor( Color p_color )
      {
        colorBG = p_color ;
      }
     
      // get the image width
      public int getImageWidth()
      {
        return iImageWidth ;
      }  
     
      // get the image height
      public int getImageHeight()
      {
        return iImageHeight ;
      }    
     
      // draw the image
      protected void paintComponent(Graphics g) {
        if( colorBG != null )
        {
           g.setColor(colorBG);
           g.fillRect(0, 0, this.getWidth(), this.getHeight());
        }
        if( img != null ) g.drawImage(img, 0, 0, this);  
      }  
    }
    je créé et dimentionne ce panel dans la classe principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            mp = new myPanel() ;
            mp.setBounds(0,0,600,200) ;
            mp.setVisible(true);
            border = BorderFactory.createTitledBorder(loweredetched) ;
            mp.setBorder(border);
            jsp =  new JScrollPane(mp) ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
              img = loadImage( sFileName ) ;
              bImg = true ;
              mp.setImage(img) ;
              mp.setPreferredSize(new Dimension(mp.getImageWidth(), mp.getImageHeight()));
              mp.repaint() ;
    ...

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/11/2009, 15h46
  2. JPanel dans un JScrollPane (qui ne défile pas bien)
    Par womannosky dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 11/02/2009, 09h16
  3. Un scrolledForm qui ne scroll pas
    Par Jounayd dans le forum Eclipse
    Réponses: 0
    Dernier message: 16/05/2008, 10h41
  4. Encore un scrollPane qui ne scroll pas
    Par Yann39 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/12/2006, 09h41
  5. [JScrollPane] qui ne veut pas se mettre en haut a gauche
    Par Cyber@l dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 24/11/2006, 10h41

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