IHM avec héritage

Résolu
Yaya_69 Messages postés 6 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 4 décembre 2013 - 4 déc. 2013 à 15:14
Yaya_69 Messages postés 6 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 4 décembre 2013 - 4 déc. 2013 à 16:47
Bonjour,

je suis entrain de réaliser une IHM mais j'ai un problème.

Pour ne pas avoir à faire des copier / coller dans chaque classe, j'ai essayé d'utiliser l'héritage.

Lorsque je clique su le bouton 'Menu Principal', tout se passe bien au premier clique. Si je clique une deuxième fois, la fenêtre s'ouvre en double (une des deux ne contient pas les panels).

Voici le code que j'utilise :

public class Organisation_Panel_View extends JFrame {
 
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
 
	public static PanelImage panel_fond			=	new PanelImage();
	public static PanelImage panel_principal	=	new PanelImage();
	public static PanelImage panel_lateral		=	new PanelImage();
	public static PanelImage panel_sup			=	new PanelImage();	
 
 
	public Organisation_Panel_View(){
 
 
		this.setTitle(Cst_Generic.version);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(Parametres_Fenetre.largeurFenetre, Parametres_Fenetre.hauteurFenetre);
 
        if(Parametres_Fenetre.premiere_ouverture == true) 
        	this.setLocationRelativeTo(null);	
        else 
        	this.setLocation(Parametres_Fenetre.emplacementLargeurFenetre, Parametres_Fenetre.emplacementHauteurFenetre);	
 
 
        panel_fond.setLayout(new BorderLayout());
        JScrollPane scrollPaneGeneral = new JScrollPane(panel_fond);
        this.getContentPane().add(scrollPaneGeneral);
 
        Dimension Sizepanel_lateral = new Dimension(180, 500);
        panel_lateral.setPreferredSize(Sizepanel_lateral);
        Dimension Sizepanel_sup = new Dimension(900, 50);
        panel_sup.setPreferredSize(Sizepanel_sup);
 
        panel_fond.add(panel_sup, BorderLayout.NORTH);
        panel_fond.add(panel_lateral, BorderLayout.WEST);
        panel_fond.add(panel_principal, BorderLayout.CENTER);
 
	}
 
 
	public void fermeture(){
 
		this.dispose();
	}
 
}


public class IHM_sup_View extends Organisation_Panel_View {
 
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
 
	private static GridBagConstraints constraints_sup = new GridBagConstraints();
 
	public static JCoolButton bouton_menu_principal	= new JCoolButton("Menu principal");
	public static JCoolButton bouton_autres			= new JCoolButton("Autres");
 
 
	public IHM_sup_View(){
 
 
		panel_sup.setLayout(new GridBagLayout());
 
		constraints_sup.gridwidth = 1;
		constraints_sup.gridheight = 1;
		constraints_sup.ipadx = 300;
		constraints_sup.ipady = 25;
 
		constraints_sup.gridx = 0;
		constraints_sup.gridy = 0;
		constraints_sup.anchor = GridBagConstraints.LINE_END;
		panel_sup.add(bouton_menu_principal,constraints_sup);
 
		constraints_sup.gridx = 1;
		constraints_sup.gridy = 0;
		constraints_sup.anchor = GridBagConstraints.LINE_START;
		panel_sup.add(bouton_autres,constraints_sup);
 
//////////////////////////////////////////
 
		//	Listener des boutons
 
 
		bouton_menu_principal.addActionListener(new ActionListener()
    	{
			public void actionPerformed(ActionEvent e)
			{
				new Menu_Principal_View().setVisible(true);
				fermeture();
			}
    	});
 
	}
 
 
}



public class Menu_Principal_View extends IHM_sup_View {
 
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
 
 
	public Menu_Principal_View(){
 
 
		panel_principal.setBorder(BorderFactory.createTitledBorder("Menu principal"));
 
	}
 
}

1 réponse

Yaya_69 Messages postés 6 Date d'inscription mardi 17 avril 2012 Statut Membre Dernière intervention 4 décembre 2013
4 déc. 2013 à 16:47
Le problème venait des static.
0
Rejoignez-nous