Menus et panels

Contenu du snippet

Cette petit est pour un exercices pour les cours
En fait, il y un probléme : si vous regardez mon code, avec la structure que j'ai choisi, je ne sais pas comment ajouter des action listener à mes différents panels
Si quelqu'un a la solution ( à mon avis, elle est pas bien compliquée, mais pour un débutant.....), ce serait sympa de m'envoyer un petit msg !!!!!
En plus, jai fais en sorte de bien situer le probléme dans le code ( par un commentaire visible )
merci pour votre aide

Source / Exemple :


//***********************************************************
//COLLEYE Pierre Yves 
//Gr 131 M
//
//Programme n°2 :
//---------------
//
//
//***********************************************************

import java.awt.* ;
import java.awt.event.* ;

public class Prog2 extends Frame implements ActionListener, WindowListener
{
	//***************
	CardLayout card;
  	FenetreCard1 f;
	Button Calc ;
	//***************
	public Prog2(String titre, int longueur, int hauteur)
	{
			super(titre) ;
			setSize(longueur,hauteur);
			
			//***************
			card = new CardLayout();
			add(f = new FenetreCard1(card));
			
			//**********************
			
			//*******************************
			//Creation de la barre de menus :
			//*******************************
			
			MenuBar mb = new MenuBar() ;
			setMenuBar(mb) ;
			
			//******************
			//Menu "Programme" :
			//******************
			
			Menu mP = new Menu("Programme") ;
			mb.add(mP) ;
			MenuItem PBis, PSom, PHyp, Fer ;
			mP.add(PBis=new MenuItem("Année Bissextile"));PBis.addActionListener(this) ;
			mP.add(PSom=new MenuItem("Somme Nb Pairs"));PSom.addActionListener(this) ;
			mP.add(PHyp=new MenuItem("Calcul Hypothénuse"));PHyp.addActionListener(this) ;
			mP.add(new MenuItem("-")) ;
			mP.add(Fer=new MenuItem("Fermer"));Fer.addActionListener(this) ;
			
			Menu mA = new Menu("Aide") ;
			mb.add(mA) ;
			Menu mAGen = new Menu("Programme") ;
			mA.add(mAGen) ;
			MenuItem AInf, AGBis, AGSom, AGHyp ;
			
			mA.add(AInf=new MenuItem("Info")) ;AInf.addActionListener(this) ;

			mAGen.add(AGBis=new MenuItem("Aide Année Bissextile"));AGBis.addActionListener(this) ;
			mAGen.add(AGSom=new MenuItem("Aide Somme Nb Pairs"));AGSom.addActionListener(this) ;
			mAGen.add(AGHyp=new MenuItem("Aide Calcul Hypothénuse"));AGHyp.addActionListener(this) ;

			
			addWindowListener(this) ;
	
	}
	
	//********************************************************
	
	class FenetreCard1 extends Panel
	{
  		public  FenetreCard1(CardLayout c)
		{ 
    		setLayout(c); 
    		PanelAB p1=new PanelAB() ;
		   Panel p2=new Panel(), p3=new Panel(), p4=new Panel() ;
		   Panel p5=new Panel(), p6=new Panel(), p7=new Panel() ; 
    		add("AB", p1);// p1.add(new Label("Année Bissextile", Label.CENTER));
    		add("NP", p2); p2.add(new Label("Calcul Nb pair", Label.CENTER));
    		add("HYP", p3); p3.add(new Label("Hypoyhénuse", Label.CENTER));
		   add("AAB", p4); p4.add(new Label("Aide Année Bissextile", Label.CENTER));
    		add("ANP", p5); p5.add(new Label("Aide Calcul Nb pair", Label.CENTER));
    		add("AHYP", p6); p6.add(new Label("Aide Hypoyhénuse", Label.CENTER));
  			//add("INF", p7); p7.add(new Label("Info", Label.CENTER));
		} 
	}
	class PanelAB extends Panel 
	{
		public PanelAB()
		{ 
		   Label msg ;
		   setLayout(new FlowLayout(FlowLayout.CENTER,400,10));
		   Panel p = new Panel() ;
		   add(new Label("Année Bissextile"));
		   Panel p2 = new Panel() ;
		   add(p2) ;
			p2.add(new Label("Nombre 1 :")) ;
		   TextField nb1 = new TextField("",6) ;
		   p2.add(nb1) ;
		   p2.add(new Label("Nombre 2 :")) ;
		   TextField nb2 = new TextField("",6) ;
		   p2.add(nb2) ;
		   Panel p3 = new Panel() ;
		   add(p3) ;
		   Calc = new Button("Calculer") ;
		   p3.add(Calc);
		   
		   //***********************
		   Voici le prob :
		   //************************
		   Calc.addActionListener(this) ;
		   
		   // pas moyen de mettre un actionlistener sur Calc !!!!!
		   
		   Panel p4 = new Panel() ;
		   add(p4) ;
		   msg = new Label("--") ;
		   p4.add(msg) ;

		}
  	
	 }
	  
	
	//*************************************************************
   
   public static void main(String args[])
	{
		Prog2 fenApp = new Prog2("Programme Java n°2",400,200) ;
		fenApp.show() ;
	}
		
	public void actionPerformed(ActionEvent e)
	{
		if(e.getActionCommand()=="Année Bissextile")  
			card.show(f,"AB");
		if(e.getActionCommand()=="Somme Nb Pairs")  
			card.show(f,"NP");
		if(e.getActionCommand()=="Calcul Hypothénuse")  
			card.show(f,"HYP");
		if(e.getActionCommand()=="Fermer")  
			System.exit(0) ;
		if(e.getActionCommand()=="Aide Année Bissextile")  
			card.show(f,"AAB");
		if(e.getActionCommand()=="Aide Somme Nb Pairs")  
			card.show(f,"ANP");
		if(e.getActionCommand()=="Aide Calcul Hypothénuse")  
			card.show(f,"AHYP");
		if(e.getActionCommand()=="Info")  
			card.show(f,"INF");
	}
		
	public void windowClosing(WindowEvent e){System.exit(0) ;}
	public void windowOpened(WindowEvent e){}
	public void windowClosed(WindowEvent e){}
	public void windowDeiconified(WindowEvent e){}
	public void windowDeactivated(WindowEvent e){}
	public void windowActivated(WindowEvent e){}
	public void windowIconified(WindowEvent e){}
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.