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 :

[Swing] Canvas dans un JScrollPane


Sujet :

AWT/Swing Java

  1. #1
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut [Swing] Canvas dans un JScrollPane
    salut a tous,
    je voudrai mettre un canvas dans un JScrollPane mais je n'y parviens pas.
    mon but est de dessiner dynamiquement l'organigramme d'un code source de taille inconnue.
    une idee?
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  2. #2
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Ben la première idée qui me vient c'est :

    canvas : AWT
    JScrollPane : Swing

    Donc pas bon vu que l'on ne peut pas mélanger les composants Swing et AWT.

    Donc je dirais utilise un JPanel plutôt qu'un canvas et redéfinie sa méthode paintComponent pour afficher ton organigramme.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Disons plutôt que c'est possible de les mélanger mais que c'est M.A.L.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    merci,
    je vais tester
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  5. #5
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par bouye
    Disons plutôt que c'est possible de les mélanger mais que c'est M.A.L.
    Certes!

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  6. #6
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    je n'ai aucun probleme moi en les melangeant ou pas, l'essentiel c'est j'arrive a faire mon tp
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  7. #7
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Juste pour rigoler met une JMenuBar contenant des JMenu bien remplis (ou une JComboxBox avec une longue liste d'items) juste au dessus de ton scrollpane et ouvre un des menus (ou ouvre la liste de la combo).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  8. #8
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class MonPanel extends JPanel
    {
     
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawLine(0,0,1024,784);
        }
     
        // Pour que ca ne clignotte pas en gris quand ,ca rame :
        public void update (Graphics g) {
            paintComponent (g) ;
        }
    }
    mais je n'arrive toujours pas a avoir des scrollbar.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maFrame.add(new JScrollPane(panel))
    bien sure.
    bouye: ca n'as rien donne de particulier, j'avais enleve le canvas et je suis trop fénéant pour refaire.
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  9. #9
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    - Avec JPanel pas besoin de surcharger la méthode update()

    - Si tu veux que des scrollbar apparaissent il faut donner une taille (setSize(), voir également setPreferredSize()) à ton panel plus grande que la taille du viewport du scrollpane.

    Dans le constructeur du panel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dimension size = new Dimension(1024, 784);
    setSize(size);
    bouye: ca n'as rien donne de particulier, j'avais enleve le canvas et je suis trop fénéant pour refaire
    Tes menu même dépliés se seraient affichés SOUS ton canvas. pas top.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  10. #10
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    Avec JPanel pas besoin de surcharger la méthode update()
    merci pour l'info.
    Si tu veux que des scrollbar apparaissent il faut donner une taille (setSize(), voir également setPreferredSize()) à ton panel plus grande que la taille du viewport du scrollpane.
    ca ne donne toujours pas de scrollbar.
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  11. #11
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Citation Envoyé par bouye
    Tes menu même dépliés se seraient affichés SOUS ton canvas. pas top.
    Y Sont egocentriques ces composants AWT, font tout pour que l'on voit qu'eux.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  12. #12
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Raté, c'était setPreferredSize()

    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
     
    package test;
     
    import java.awt.*;
     
    import javax.swing.*;
     
    /**
     * <p>Title: </p>
     *
     * <p>Description: </p>
     *
     * <p>Copyright: Copyright (c) 2006</p>
     *
     * <p>Company: </p>
     *
     * @author not attributable
     * @version 1.0
     */
    public class TestScroll extends JPanel {
      public TestScroll() {
        super();
        setPreferredSize(new Dimension(800, 600));
      }
     
      /** {@inheritDoc}
       */
      @Override public void paintComponent(Graphics graphics) {
        super.paintComponent(graphics);
        graphics.setColor(Color.BLACK);
        graphics.drawLine(0, 0, 800, 600);
      }
     
     
      /** Self test main.
       * @param args Arguments from the command-line.
       */
      public static void main(String ...args) {
        JFrame frame = new JFrame("Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout());
        frame.add(new JScrollPane(new TestScroll()), BorderLayout.CENTER);
        frame.setSize(new Dimension(200, 200));
        frame.setVisible(true);
      }
    }
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  13. #13
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    meri bouye,
    ca marche a merveille.
    a+
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  14. #14
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    en fait c'est pas tout a fait fini.
    j'ai ajoute mon panel a un JtabbedPane, et la les scrollbars diparaissent.
    auriez vous une idee la dessus :
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  15. #15
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    C'est ton scroll pane que tu dois ajouter au tabbedpane. Ca ferai une GUI bizarre sinon.
    Sinon si le tabbedpane est dans le scroll pane pareil setPreferredSize() sur le tabbedpane.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  16. #16
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    oui c'est ce que j'avais fait, tres mal exprimé seulement.
    mais le probleme est le suivant:
    j'ajoute une JTextArea a mon tabbedPane
    j'ajoute un scroolPane qui contient mon panel dans le tabbedPane
    et la les scroll n'apparaissent que lorsque je redimensionne ma frame.

    si j'inverse l'ordre d'ajout, tout marche bien(je fais un paintAll() de ma frame).
    meme en ajoutant un ChangeListner a la tabbedPane et que je fasse un paintAll dedans, rien ne change.
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

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

Discussions similaires

  1. [Swing] JPanel dans JScrollPane ça ne marche pas !
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 23/11/2010, 00h16
  2. Probleme [SWING]: JPanel dans JscrollPane
    Par malandro dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 24/05/2006, 21h02
  3. [Swing] Problème d'affichage dans un JScrollPane
    Par Adrien22 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 05/04/2006, 14h36
  4. [Swing] Un JPanel dans un JScrollPane
    Par Quintoff dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 08/01/2006, 12h44
  5. [debutant][swing] pb dans un paintComponent
    Par tambourin dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 03/06/2004, 20h27

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