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

Composants Java Discussion :

Jpanels les un sur les autres avec Matisse (Netbeans)


Sujet :

Composants Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut Jpanels les un sur les autres avec Matisse (Netbeans)
    Bonjour,

    J'utilise Netbeans, et je suis en train d'essayer l'outil Matisse qui sert à faire des Gui à la manière de Visual basic par exemple.

    Je tiens à préciser que je n'ai pas de connaissances en Swing, par conséquence si vous pensez que le problème que je rencontre viens de mon manque de connaissance plutot que de Matisse dites le moi !!

    Pour l'instant, j'ai une JForm, avec un menu classique (Fichier, Edition...) ainsi qu'un JPanel qui contient des zones de saisie de texte...

    Je voudrais en fait pouvoir faire un second JPanel, qui viendrais s'afficher lorsque je clique sur un Item de mon menu.

    Le problème est que Matisse ne me laisse pas poser un JPanel par dessus celui qui existe déjà, et qui prend toute ma JForm...

    J'éspère avoir été assez clair, si ce n'est pas le cas je peux vous montrer une impression écran.

    Merci pour votre aide !

  2. #2
    Membre actif Avatar de fremsoi
    Inscrit en
    Août 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    Je connais pas NetBeans mais ton JPanel qui doit s'afficher, s'affiche à la place de l'autre?

    Si c'est ça il faut travailler sur les layout et même sur les CardLayout.

    Comme dis au dessus ne connaissant pas NetBeans, je peux pas te dire comment faire avec cet outils.
    Mais tu auras de la code sur les CardLayout facilement

  3. #3
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Matisse utilise son propre layout. Ce que tu veux faire est tout a fait possible mais je ne comprends pas bien ce qui ne marche pas chez toi ?
    Romain Guy
    Android - Mon livre - Mon blog

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Bonjour,

    Je viens de faire des impressions écran pour être plus clair. Je précise aussi que j'utilise la version beta 2 de Netbeans 5.0 avec le J2SE 1.5.

    Dans la première image on voit la JFrame, le menu et le Jpanel (blanc).



    Déjà le premier problème que je rencontre, c'est que j'aimerai qu'au lancement ce panel soit à setVisible(false), et à part en rajoutant cette ligne dans le constructeur après le initComponents() généré par Matisse, je ne sais pas comment faire.

    Je voudrais en fait que ce soit uniquement en cliquant dans le menu qu'on le fasse apparaitre (ca j'arrive à le faire).

    Et dans la 2ème image, on voit le petit carré gris, qui est mon 2ème JPanel, que je voudrais faire apparaitre en cliquant sur un autre item du menu, tout en faisait disparaitre l'ancien JPanel...



    On voit bien que Matisse place le nouveau JPanel dans l'ancien et non pas au dessus, et je ne sais pas quelle propriété toucher, on peut peut-être masquer l'ancien pour mieux travailler?

    Merci pour votre aide !

  5. #5
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Je n'ai jamais essaye de faire ca avec Matisse. Le mieux serait que tu utilises en effet un CardLayout dans un de tes panels. Ou alors utilise un layout absolu plutot que Matisse.
    Romain Guy
    Android - Mon livre - Mon blog

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Tu utiliserais quelle technique toi avec Matisse pour faire ca?

    Moi j'ai fait ca à tout hasard, mais je ne suis pas convaincu de la méthode.

    Je voudrais au final afficher, les uns après les autres, plusieurs "formulaires", ou "pages", en cliquant sur les boutons du menu.

  7. #7
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Tu veux pas utiliser des onglets ?
    Romain Guy
    Android - Mon livre - Mon blog

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Les onglets ne m'attirent pas du point de vue estethique.

    Si tu préfère, je voudrais arriver, à terme à ce genre d'interface :



    c'est à dire je pense en mettant des simples boutons sur la gauche, puis à droite je voudrais des panels (ou un autre composant) qui s'affiche en fonction du bouton sur lequel je clique...

    C'est le principe des onglets je pense mais la disposition change.

  9. #9
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    J'ai deja code ca et j'ai utilise un CardLayout. Cree simplement un panneau avec un CardLayout dans lequel tu mets des panel qui ont eux meme le layout Matisse.
    Romain Guy
    Android - Mon livre - Mon blog

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Super, mais par contre je dois donc d'abord coder à la main, ou je peux tout faire avec Matisse ?

  11. #11
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Je n'ai jamais essaye de faire un CardLayout dans un editeur visuel donc je ne peux pas te dire. Essaye
    Romain Guy
    Android - Mon livre - Mon blog

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Ok, j'essaye cà à midi ou ce soir, maintenant j'ai cours... de Java, mais malheureusement on fera pas les interfaces graphiques avec la prof !

    merci beaucoup pour ton aide

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Re !

    Alors j'ai suivi ton conseil, et j'ai un peu joué avec les gestionnaires de positionnement, j'arrive à cà :



    seulement, je n'arrive pas à avoir les boutons de gauche carrés...
    pourtant je leur fait un bouton.setSize(100,100);

    je met le code :

    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
     
    import java.awt.*;
    import javax.swing.*;
     
    public class CartePlacement extends JFrame {
        private JPanel cartes;
     
        public CartePlacement() {
            super("Démonstration CardLayout");
            this.setDefaultCloseOperation(EXIT_ON_CLOSE);
            this.creerInterface();
     
            this.pack();
            this.setVisible(true);
        }
     
        public void creerInterface() {
            JPanel pan = (JPanel) this.getContentPane();
     
            JPanel panMenu = new JPanel();
            JButton jb1 = new JButton("affich1");
            JButton jb2 = new JButton("affich2");
            JButton jb3 = new JButton("action");
            JButton jb4 = new JButton("fermer");
            JButton jb5 = new JButton("ouvrir");
     
            jb1.setSize(100,100);
            jb2.setSize(100,100);
            jb3.setSize(100,100);
            jb4.setSize(100,100);
            jb5.setSize(100,100);       
     
            jb1.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    CardLayout carte = (CardLayout) (cartes.getLayout());
                    carte.show(cartes, "pAjout");
                }
            });
     
            jb2.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    CardLayout carte = (CardLayout) (cartes.getLayout());
                    carte.show(cartes, "pSuppr");
                }
            });
     
            panMenu.setLayout(new GridLayout(5,1,5,5));
            panMenu.add(jb1);
            panMenu.add(jb2);
            panMenu.add(jb3);
            panMenu.add(jb4);
            panMenu.add(jb5);
     
            JPanel carte1 = new JPanel();
            carte1.setLayout(new FlowLayout(FlowLayout.LEFT));
            carte1.add(new JLabel("Formulaire n°1") );
            carte1.add(new JButton("Premier Bouton"));
            carte1.add(new JTextField(20) );
     
            JPanel carte2 = new JPanel();
            carte2.add(new JLabel("Formulaire n°2"));
            carte2.add(new JTextField(20));
            carte2.add(new JButton("Second bouton"));
     
            cartes = new JPanel(new CardLayout());
            cartes.add(carte1, "pAjout");
            cartes.add(carte2, "pSuppr");
     
     
            pan.add(panMenu, BorderLayout.WEST);
            pan.add(cartes, BorderLayout.CENTER);
        }
     
        public static void main(String[] args) {
            CartePlacement doite = new CartePlacement();
        }
    }

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    personne pour m'éclairer ?...

Discussions similaires

  1. Réponses: 14
    Dernier message: 16/04/2018, 09h35

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