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

avec Java Discussion :

IHM avec héritage


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 145
    Par défaut IHM avec héritage
    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 :


    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
    41
    42
    43
    44
    45
    46
    47
    48
    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();
    	}
     
    }



    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    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();
    			}
        	});
     
    	}
     
     
    }

    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
    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"));
     
    	}
     
    }

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Sans regarder plus en détails, je me demande pourquoi tu as utilisé static ?

    Un même composant ne peux se retrouver dans 2 panel différent au même moment (variable static ou pas).

    Peut être ton problème vient encore d'ailleurs, mais moi je retirerais déjà tout les statiques...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 145
    Par défaut
    Merci beaucoup.

    Le problème venait de là.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise en place IHM avec vb.net
    Par DiamonDonald dans le forum VB.NET
    Réponses: 3
    Dernier message: 18/02/2008, 10h43
  2. Réponses: 3
    Dernier message: 06/11/2007, 09h29
  3. Erreur du designer avec héritage d'une classe abstraite
    Par Xzander dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/04/2007, 00h36
  4. IHM avec GTK
    Par beznito dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 26/03/2007, 17h42
  5. IHM Avec Winforms
    Par Ari31 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/03/2007, 14h21

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