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 :

Méchants ScrollPane !


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
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Par défaut Méchants ScrollPane !
    Bonjour à tous,

    je voudrais pouvoir insérer un objet (dans mon cas dérivé de Canvas) dans un ScrollPane afin d'en visualiser une partie et de pouvoir faire défiler... Enfin c'est le principe du ScrollPane !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Objet Mon_Objet = new Objet(args...);
    JScrollPane jsp = new JScrollPane(Mon_Objet);
    jsp.setSize(300, 100);
    contentPane.add(jsp);


    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
    public class Objet extends Canvas{
     
    	// Attributs
    	// ...
     
    	//Constructeur
    	public Objet (arguments...){
    	// ...
    	}
     
     
    	public void update(Graphics g){
    	      paint(g);
    	   }
     
     
    	public void paint( Graphics g ){
     
    		//création du buffer s'il n'existe pas
    		if(buffer==null){
    			image = createImage(largeur,hauteur);
    			buffer = (Graphics2D) image.getGraphics();
    		}
    		buffer.setColor( Color.lightGray );
    		buffer.fillRect(Xmin, Ymin, Xmax-Xmin, Ymax-Ymin);
    		// ...
     
    		g.drawImage(image, 0, 0, this);
    	}
     
    }

    Et donc, voici le problème, l'image est plus grande que le ScrollPane et celle-ci "déborde" de la fenêtre au lieu d'être coupée par le bord du ScrollPane !!! Comment çà ce fait ???



    Aurriez vous une idée, je suppose que c'est tout bète, mais çà fait un bout de temps que je m'acharne la dessus, et là...

    Merci d'avance !
    Images attachées Images attachées  

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    est-ce que dans ton paint tu fait appel à une méthode qui modifie le cliprect du graphics?

    Lors de l'appel, le parent (ScrollPane) aura mis un cliprect adapté à la zone visible, si tu y touche, tu risque de déborder.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Par défaut
    Salut,

    je ne sais pas ce qu'est le "cliprect", quelles sont les méthodes qui le modifie ? je ne fais que des trucs "de base", des fillRect, drawLines, etc...

    Que dois-je faire pour savoir si le pb vient de là ?

    Merci d'avance !

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Il faut éviter au maximum de mélanger de l'AWT avec du Swing, sauf si on sait ce que l'on fait.
    Dans ton cas, je te conseille vivement de faire l'essai en remplaçant le Canvas par un javax.swing.JPanel. Surcharge la méthode "paintComponent" au lieu de "paint". Dis-nous ce que ça donne.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Par défaut
    En changeant Canvas par JPanel, l'image est correctement tronquée, par contre je n'ai plus la barre en bas...

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par myryad Voir le message
    En changeant Canvas par JPanel, l'image est correctement tronquée, par contre je n'ai plus la barre en bas...
    Normal, il faut aussi surcharger la méthode getPreferredSize() de ton JPanel pour dire à son parent, le JScrollPane, quelle taille il a. Après ça, normalement, tout marche
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

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

Discussions similaires

  1. [FLASH MX2004] Actionscript et ScrollPane
    Par meslaey dans le forum Flash
    Réponses: 20
    Dernier message: 10/07/2005, 03h20
  2. [FLASH MX 2004]Scrollpane component
    Par cavo789 dans le forum Flash
    Réponses: 10
    Dernier message: 23/06/2004, 11h18
  3. JTable dans un scrollpane
    Par Scrusher dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 04/05/2004, 20h45
  4. [composant][MX_2004_pro] prob avec scrollpane
    Par scorpiwolf dans le forum Flash
    Réponses: 6
    Dernier message: 12/01/2004, 20h18
  5. [Flash MX] texte et scrollPane
    Par dens63 dans le forum Flash
    Réponses: 11
    Dernier message: 21/11/2003, 18h40

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