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 :

Ajout de composant a un JSrollPane


Sujet :

AWT/Swing Java

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut Ajout de composant a un JSrollPane
    à tous,
    J'ai un classe qui hérite de JScrollPane à laqu'elle je veux ajouter des sous composants. J'ai lue quelque part que ces sousComposant devaient implementer l'interface Scrollable. Est-ce le cas seulement pour le sous composant direct ou pour tous les sous-sous-Composant.
    Je voulais aussi savoir si on pouvait ajouter des composants après la creation du JScrollPane. En effet j'ai vue qu'il n'y avait pas la possiblité d'utiliser la methode add(même si elle existe). Alors doit-on l'ajouter au viewPort(très illogique car il ne s'agit que du "filtre"), au contentPane(et faire getViewPort.setOpaque(false) pour le rendre transparent) ou ...
    Donc si quelqu'un pouvait m'explique comment je dois m'y prendre.
    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Je ne sais pas pourquoi ni comment tu as une classe qui hérite de JScrollPane, mais en tous les cas le JScrollPane standard ne scroll qu'un seul élément, et cela m'étonnerait beaucoup qu'un concepteur de classe fille trouve une raison de changer cette règle, mais enfin tout est possible.

    Pour ton cas, je te conseille que cet unique composant soit un JPanel. Tu pourras créer une classe qui en hérite pour mettre en oeuvre l'interface Scrollable si tu veux. Dans ce JPanel tu rajouteras les composants que tu voudras quand tu le voudras.

    Ne rajoute pas tes composants au viewport, cela n'a aucun rapport (je fais des vers), ni au contentpane qui a encore moins de rapport si possible.

    Comme tu sembles faire partie des personnes qui lisent les docs : How to Use Scroll Panes.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    merci de ta réponse,
    En faite je connaissait déjà le lien. Mes premiers reflexes quand je cherche quelquechoses c'est la javadoc puis le javaTutorial(HowUse...), puis google!
    Apparement pour modifier le composant que contient le JScrollPane, ilfaut faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monScrollPane.setViewPortView(JComponent c);
    methode qui est utilisé pour le constructeur de JScrollPane(JComponent c)
    plutot que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monScrollPane.add(JComponent c);
    (cf code source)
    En faite ce que je voudrais faire c'est un equivalent d'un editeur de Text qui quand on a finie la page créer une nouvelle page est la mets à la suite.
    Donc je pensais faire un JPanel conteneur que j'ajoute à mon JScrollPane.
    A mon conteneur j'applique un BoxLayout et j'ajoute des page qui sont des JPanel.

    Donc mon premier problème etant réglé (apparement c'est pas sure), je me demander comment on pouvait dans un boxLayout forcer une bordure.
    J'ai ma feuille et je voudrais quelle fasse en largeur 0,8 fois la taille du panel qui la contient. Cest à dire que si ma feille est blanche et le conteneur gris on vois du gris de chaque coté de la feuille .si quelqu'un vois comment on peut faire ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    en faite j'ai trouvé il faut utilisé un Box.Filler(ça j'avais déjà trouvé) mais il faut faire setMaximumSize à ma feuille.Ainsi le layout manager ne la redimensionne pas trop.
    PS:désolé pour la "bourde" du content pane. En faite c'était un panel que j'avais creé et dont je me servais plus et j'ai cru qu'il y avait un contentPane dans un JSrollPane comme dans une JFrame

  5. #5
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Attention que le viewport n'est pas le composant scrollé ; le viewport est le composant qui présente l'extrait visible du composant à scroller.

    Dans ton cas le composant à scroller est tout le panneau éditeur de texte, tandis que le viewport permet au JScrollPane de présenter seulement la portion visible de ton éditeur.
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    oui, c'est bien ce que j'avais compris mais je mets mon composant à scroller à l'aide de setViewPortView et non setViewPort.
    Merci pour ton aide

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

Discussions similaires

  1. [IDE] Ajouter des composants
    Par mohamed dans le forum EDI
    Réponses: 2
    Dernier message: 11/02/2006, 09h16
  2. [JList]Ajout de composant String/Objet
    Par HNT dans le forum Composants
    Réponses: 7
    Dernier message: 19/01/2006, 12h24
  3. [debutant]Direct X et l'ajout de composants VS.net
    Par cladsam dans le forum DirectX
    Réponses: 1
    Dernier message: 14/03/2005, 09h09
  4. Ajouter des composants à chaud avec Swing
    Par raj dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/12/2004, 10h34
  5. Réponses: 1
    Dernier message: 02/01/2003, 12h45

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