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 :
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 :
Comme ça tu ne gardes que l'attribut privé, pas la variable locale, et tu affiches bien ce que tu manipules.
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.
Streamooc
Messages postés
89
Statut
Membre
Bonjour merci beaucoup KX ça marche maintenant.