Swing windowsBuilder
Résolu
Streamooc
Messages postés
89
Statut
Membre
-
Streamooc Messages postés 89 Statut Membre -
Streamooc Messages postés 89 Statut Membre -
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
-
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.