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 :

Taille d'un JScrollPane


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    SGJ
    SGJ est déconnecté
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Par défaut Taille d'un JScrollPane
    J'ai un JScrollPane qui contient un JeditorPane. D'après la doc, JScrollPane devrait appeler la méthode getPreferredScrollableViewportSize() pour décider du taille qu'il devrait prendre. Or dans mon petit exemple ci-dessous cette méthode n'est même pas appelée. Du coup, je ne vois ni l'editorpane ni le scrolpane sur mon Jpanel principale.

    Pour voir quelque chose, il faut que je remplace setLocation() par setBounds() dans lequel je spécifie une dimension au jscrollpane qui peut ne rien à voir avec la dimension souhaitée de l'editorpane qui est retournée par getPreferredScrollableViewportSize() .

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
     
    import java.awt.*;
    import java.awt.image.*;
    import java.io.*;
    import java.net.URL;
    import javax.imageio.*;
    import javax.swing.*;
     
    class EditorP extends JEditorPane
    {
    	EditorP(String str1, String str2){super(str1,str2);}
     
    	public Dimension getPreferredScrollableViewportSize()
    	{
    		return (new Dimension(600,100));
    	}
    /*
    	public boolean getScrollableTracksViewportHeight()
    	{
    		return true;
    	}
    	public boolean getScrollableTracksViewportWidth()
    	{
    		return true;
    	}
    */
    }
     
    public class ScrolFan extends JPanel 
    {
    	BufferedImage img1=null;
    	JScrollPane scrol1=null;
    	JEditorPane pan1 = null;
     
    	ScrolFan()
    	{
    	  try {
    		setLayout(null);
    		img1 = readImage("maison.jpg");	
    		pan1 = new EditorP("text/html","<html> <body><strong>Ca y est, c'est les vacances. Nathalie et ses parents ont choisi de passer quelques jours à la campagne. Il fait très beau, Nathalie a décidé d’aller se promener autour de la maison.</font></strong></p></body></html>");	
    		scrol1=new JScrollPane(pan1);
    		scrol1.setLocation(100,400);
    	//	scrol1.setBounds(200,600,100,100);
    		add(scrol1);
    	  } catch(Exception ex) {}
    	}
     
        public Dimension getPreferredSize() {
          return new Dimension(1020,700);
        }  
     
        protected void paintComponent(Graphics g) 
        {
        	  g.drawImage(img1, 0, 0, getWidth(),getHeight(), this);
        }
     
         public BufferedImage readImage(String img) throws IOException
         { 	  
     	 		URL url = getClass().getResource(img);
        	 	if (url == null) 
        	 	{
        	 		IOException ioe= new IOException("bad image file name");
        	 		throw ioe;
        	 	}
        	 	return ImageIO.read(url);
         }
     
         public static void main(String[] args) throws IOException {
    		ScrolFan app = new ScrolFan();
    	    app.setBackground(Color.WHITE);        
    		JFrame frame = new JFrame();
    	    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	    frame.setContentPane(app);
    		frame.pack();
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
    		frame.setLocation(0,0);
        } 
    }
    Quelqu'un a t il une idée ?

    Merci

  2. #2
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut
    Citation Envoyé par SGJ
    Quelqu'un a t il une idée ?
    Oui, ne pas utiliser de layout null...

  3. #3
    SGJ
    SGJ est déconnecté
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Par défaut
    L'application sur laquelle je travaille est bien trop complexe pour que je la colle dans ce thread. Dans cette application, il faut que j'utilise un layout null, je n'ai pas le choix.

    J'ai collé un exemple qui montre le problème que j'ai eu dans mon application parce que je pense que ça sera plus facile d'obtenir une aide avec un tel petit exemple.

    Est ce que tu veux dire que si on utilise un layout null pour toute l'application le Jscrollpane ne s'occupe plus de la taille de ses enfants ? A vrai dire, j'y ai pensé et j'ai ajouté "scrol1.setLayout(new PanelLayoutManager());" mais ça n'a pas résolu le problème.

    Merci

  4. #4
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut
    Il y a des morceaux d'explications sur l'utilisation des layout et du jscrollpane ici :

    http://www.developpez.net/forums/sho...d.php?t=307429

  5. #5
    SGJ
    SGJ est déconnecté
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Par défaut
    OK. Je comprends mieux.
    Merci pour ton aide.

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

Discussions similaires

  1. Taille JPanel dans JScrollPane
    Par Ceubex dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 27/09/2012, 19h45
  2. Problème de taille JSplitPane et JScrollPane
    Par iGwendal dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 24/11/2009, 14h37
  3. [JPanel] taille dans un JSCrollPane
    Par vpourchet dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 07/04/2008, 16h06
  4. [débutant] taille d'un JScrollPane
    Par Benoit_Durand dans le forum Agents de placement/Fenêtres
    Réponses: 12
    Dernier message: 07/04/2005, 10h15
  5. [JScrollPane] élargir la taille
    Par nyny_p dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 03/05/2003, 10h54

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