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

Interfaces Graphiques en Java Discussion :

remplacer un jpanel par une autre au cours d'execution du programme


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Points : 70
    Points
    70
    Par défaut remplacer un jpanel par une autre au cours d'execution du programme
    bonjour tout le monde
    je suis en train de développer une application en java.
    alors au demarrage de l'application j'affiche un jpanel qui contient deux champs login et password et un bouton valider,apres que l'utiisateur saisisse les bonnes informations je dois afficher un autre jpanel qui contient des champs textes boutons ....
    (y'a deux images ci-joines pour vous donner une idee merci de les voir)
    alors pour ecraser le premier jpanel qui contient les objet de connexion je le rend invisible apres j'ajoute a sa place le 2eme jpanel qui contient des champs textes et boutons????
    bon ceci marche tres bien mais je pense que ya mieux
    alors svp repondez moi je cherche si ya une autre facon pour faire ceux ci:
    * creation d'une fenetre et affchage d'un jpanel .
    * apres que l'user saisisse les bonnes informations je dois remplacer le jpanel par une autre
    merci de votre soutien

  2. #2
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    salut,
    tu pourrais utiliser un CardLayout comme Layout pour ta frame
    voici un exemple d'utilisation de CardLayout
    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
     
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class TestCardLayout
    {
    	public static void main(String args[])
    	{
    		JPanel pn1 = new JPanel(new FlowLayout());
    		pn1.setBackground(Color.RED);
    		JPanel pn2 = new JPanel(new FlowLayout());
    		pn2.setBackground(Color.GREEN);
    		JLabel lbl1 = new JLabel("Panel1");
    		JLabel lbl2 = new JLabel("Panel2");
    		JButton btn1 = new JButton("Aller à panel2");
    		JButton btn2 = new JButton("Aller à panel1");
    		pn1.add(lbl1);
    		pn1.add(btn1);
    		pn2.add(lbl2);
    		pn2.add(btn2);
    		final JFrame frm = new JFrame();	
     
    		btn1.addActionListener(new ActionListener()
    		{
    			public void actionPerformed(ActionEvent e)
    			{
    				CardLayout cl = (CardLayout)(frm.getContentPane().getLayout());
    				cl.next(frm.getContentPane());
    			}
    		});
    		btn2.addActionListener(new ActionListener()
    		{
    			public void actionPerformed(ActionEvent e)
    			{
    				CardLayout cl = (CardLayout)(frm.getContentPane().getLayout());
    				cl.previous(frm.getContentPane());
    			}
    		});
    		frm.getContentPane().setLayout(new CardLayout());
    		frm.getContentPane().add(pn1, "panel1");
    		frm.getContentPane().add(pn2, "panel2");
    		frm.setSize(300, 100);
    		frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frm.setVisible(true);
    	}
    }

  3. #3
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Salut,

    un JPanel est une classe qui dérive de la classe java.awt.Container, qui propose (entre autre) les fonctions add(Component) et remove(Component) qui te permettront d'ajouter et de supprimer dynamiquement des composants graphiques.

    Mais au vu de tes screenshots, je pense que tu pourrais utiliser une classe plus spécialisée, genre CardLayout qui te permettra d'avoir tous tes panels enregistrés dans l'instance de cette classe, tout en pouvant choisir l'unique composant qui sera affiché à un moment donné (fonctions next et previous).

    Edit: grilled par herch
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 119
    Points : 70
    Points
    70
    Par défaut
    je vous remercie beaucoup

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

Discussions similaires

  1. On remplace le printf par une autre fonction
    Par chirazch dans le forum C++
    Réponses: 6
    Dernier message: 31/05/2013, 18h59
  2. Remplacer un JPanel par un autre
    Par polow dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 02/05/2013, 17h54
  3. shell_exec: Remplacer un dossier par une autre
    Par Gon3s dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 18/04/2012, 13h12
  4. [WindowBuilder] Remplacer un JPanel par un autre
    Par Arsene Newman dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 11/10/2011, 15h07
  5. remplacer un JPanel par un autre dans JFrame
    Par Le fut dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 20/04/2007, 09h56

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