Swing windowsBuilder

Résolu/Fermé
Streamooc Messages postés 74 Date d'inscription samedi 17 juin 2017 Statut Membre Dernière intervention 8 février 2023 - Modifié le 21 janv. 2018 à 23:17
Streamooc Messages postés 74 Date d'inscription samedi 17 juin 2017 Statut Membre Dernière intervention 8 février 2023 - 22 janv. 2018 à 15:36
Bonjour à tous.j'ai créé un menu et un item du menu et également un panneau.Ce que je voudrais c'est qu'en cliquant sur item 'Gestion des localités ' que le panneau s'ouvre.Le code suivant me semble correct mais rien ne marche si quelqu'un pourrait m'aider s'il vous plaît.



package sn.objis.gestionbanqueswing.guiAdmin;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import sn.objis.gestionbanqueswing.guiLocalite.PanelGeneralLocalite;

import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;

public class FenetrePrincipaleAdmin extends JFrame  {

 private JPanel contentPane;
 private JPanel panelCentre;

/**
* Launch the application.
*/
 public static void main(String[] args) {
  EventQueue.invokeLater(new Runnable() {
   public void run() {
    try {
     FenetrePrincipaleAdmin frame = new FenetrePrincipaleAdmin();
     frame.setVisible(true);
      frame.setSize(1100, 608);
            frame.setLocationByPlatform(true);
            frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    } catch (Exception e) {
     e.printStackTrace();
    }
   }
  });
 }

/**
* Create the frame.
*/
 public FenetrePrincipaleAdmin() {
    
  
  setBounds(100, 100, 484, 480);
  contentPane = new JPanel();
  contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  setContentPane(contentPane);
  contentPane.setLayout(null);
  
  
  JMenuBar menuBar = new JMenuBar();
  menuBar.setBounds(0, 0, 468, 32);
  contentPane.add(menuBar);
  JMenu mnLocalits = new JMenu("Localit\u00E9s");
  menuBar.add(mnLocalits);
  panelCentre=new JPanel();
  JMenuItem mntmGestionLocalite = new JMenuItem("Gestion des localit\u00E9s");

  mntmGestionLocalite.addActionListener(new ActionListener() {
   
   @Override
   public void actionPerformed(ActionEvent e) {
    // Suppression du contenu du panel centre
    
    panelCentre.removeAll();
    PanelGeneralLocalite panelGeneralLocalite = new PanelGeneralLocalite();
    panelCentre.add(panelGeneralLocalite, BorderLayout.CENTER);
    contentPane.validate();
    
   }
  });
  

  mnLocalits.add(mntmGestionLocalite);
  
  
  
  
  JPanel panelCentre = new JPanel();
  panelCentre.setBounds(10, 50, 458, 381);
  contentPane.add(panelCentre);
 }
}

package sn.objis.gestionbanqueswing.guiLocalite;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;

import sn.objis.gestionbanqueswing.domaine.Localite;
import sn.objis.gestionbanqueswing.model.LocaliteModel;
import sn.objis.gestionbanqueswing.service.ServiceLocaliteImpl;

public class PanelGeneralLocalite extends JPanel {

 
 private JPanel panelNord;
 

 /**
 * Create the panel.
 */
 public PanelGeneralLocalite() {
  
  setBackground(new Color(144, 238, 144));
  setLayout(new BorderLayout(0, 0));

  panelNord = new JPanel();
  add(panelNord, BorderLayout.NORTH);
  panelNord.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));

  JLabel lblTitre = new JLabel("Liste des localités des agences de PROXYBANQUE");
  lblTitre.setForeground(new Color(102, 204, 51));
  lblTitre.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 14));
  panelNord.add(lblTitre);
  

  
 }
}

1 réponse

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
22 janv. 2018 à 13:19
Bonjour,

Ton problème est assez simple en fait, à la fin du constructeur de FenetrePrincipaleAdmin tu as ça :

JPanel panelCentre = new JPanel();
panelCentre.setBounds(10, 50, 458, 381);
contentPane.add(panelCentre);

Tu initialises une variable locale JPanel panelCentre, vide, que tu ajoutes à ton contentPane, or celui-ci porte le même nom que ton attribut private JPanel panelCentre, mais ils n'ont rien à voir l'un avec l'autre.
Donc l'ActionListener va bien modifier l'attribut privé, mais c'est la variable locale qui est affichée...

En bref, supprime la ligne 85 :
JPanel panelCentre = new JPanel();

Comme ça tu ne gardes que l'attribut privé, pas la variable locale, et tu affiches bien ce que tu manipules.
0
Streamooc Messages postés 74 Date d'inscription samedi 17 juin 2017 Statut Membre Dernière intervention 8 février 2023
22 janv. 2018 à 15:36
Bonjour merci beaucoup KX ça marche maintenant.
0