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

Agents de placement/Fenêtres Java Discussion :

Problème d'affichage de fenêtre


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut Problème d'affichage de fenêtre
    salut . je voudrait changer mon JPanel1 initiallement afficher en mon 2ieme JPanel apprès un clic de boutton.
    je fait donc:
    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
     
    	 private void nouveauActionPerformed(java.awt.event.ActionEvent evt) {                                        
     
            Nouveau n = new Nouveau();  /*public class Nouveau extends javax.swing.JPanel { ...  }  
                                                            c'est la classe de mon 2ieme panel */
     
                changerPanel(pFrame1,n,"Nouveau");
            }
        public void changerPanele(JInternalFrame JF, JPanel A, String titre)
        {
            JF.dispose();
            JF.setTitle(titre);
            JF.removeAll();
            JF.getContentPane().add(A);
            JF.setVisible(true);
        }
    le 1er Panel est bien retirer, le titre du JInternalFrame est bien changer; Mais le 2ieme panel ne s'affiche pas.
    Merci pour toute aide

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    La méthode dispose() ferme non seulement la JFrame, mais la rend inutilisable parce que çà la déconnecte de Swing (d'où le nom de la méthode, au lieu de close, et contrairement à un setVisible(false) (ou anciennement hide()) qui la cache seulement).

    Pour "changer" de panel, soit :

    1. tu disposes la JFrame actuelle, et tu en crées une nouvelle avec le nouveau panel
    2. soit tu changes le content pane dans la frame actuelle mais tu ne la disposes pas.


    Si tes deux panels sont appelés à être affichés souvent, alternativement (l'un ou l'autre), le mieux est encore de les mettre dans un JPanel avec CardLayout, ce qui te permettra d'en alterner l'affichage facilement.

    Exemple :
    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
    public class PanelsAlternatifs {
     
    	private static final String PANEL1 = "PANEL 1";
    	private static final String PANEL2 = "PANEL 2";
     
    	public static void main(String[] args) {
     
    		JFrame frame = new JFrame();
     
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		JPanel panel = new JPanel();
    		CardLayout cardLayout = new CardLayout();
    		panel.setLayout(cardLayout);
     
    		createPanel(panel,cardLayout,PANEL1,PANEL2);
    		createPanel(panel,cardLayout,PANEL2,PANEL1);
     
    		frame.getContentPane().setLayout(new GridBagLayout());
    		frame.add(panel);
     
    		frame.setSize(600, 600);
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
    	}
     
    	private static void createPanel(JPanel container, CardLayout cardLayout, String panelName, String panelAutre) {
    		JPanel panel = new JPanel(new BorderLayout());
    		JLabel label = new JLabel("LE " + panelName,SwingConstants.CENTER); 
    		label.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
    		panel.add(label);
    		panel.add(label, BorderLayout.NORTH);
    		JButton button = new JButton("Afficher l'autre panel ("+panelAutre+")");
    		panel.add(button);
    		button.addActionListener(e-> cardLayout.show(container, panelAutre)); 
    		container.add(panel, panelName); // on donne un nom au panel dans le cardlayoyut pour pouvoir le sélectionner
    	}
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. [ExtJS] problème d'affichage de fenêtres
    Par pitou26 dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 18/11/2012, 12h03
  2. Réponses: 1
    Dernier message: 14/05/2006, 20h02
  3. [C#] Problème d'affichage d'une fenêtre (event Load)
    Par PB-W dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/03/2006, 13h48
  4. Problème d'affichage: fenêtres (frames) vides!
    Par NdmaX dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 12/07/2005, 21h23
  5. [Kylix] Problème d'affichage de fenêtres
    Par Progs dans le forum EDI
    Réponses: 1
    Dernier message: 01/01/2005, 02h46

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