A partir d'une class changer la variable d'une aplet et la rafraichir

A partir d'une class changer la variable d'une aplet et la rafraichir - Java - Programmation

Marsh Posté le 08-04-2005 à 22:34:36    

Bonjour,
 
Je suis en train de faire un diapo.
 
J'ai mon applet (Pageprincipale.class), un defilement d'image (Animation.class), un menu (Menu.class)
 
Voila mon applet :
 

Citation :

public class Pageprincipale extends Applet {
 
 //champs
 
 //Objets
 private Animation animation;
 private Menu menu;
 private Titre titre;
 private Image imgtitre;
 private TableauVignette tableauvignette;
 private Label ltemps,ltitre,limage;
        private Image imgvignette;
 private int largeurvignette,hauteurvignette;
 private Image [] tabimages;
        private MediaTracker mt;
        private Panel p;
        private int temp;
   
 
 //------------------------INITIALISATION-------------------------
 
 public void init(){
 
  ltemps=new Label("temps" );
  ltitre=new Label("titre" );
     limage=new Label("image" );
//  -----------------CREATION DE LA PAGE---------------
 
  GridBagLayout g=new GridBagLayout();
  GridBagConstraints c=new GridBagConstraints();
   
  //---------CREATION DU "TABLEAU"-----------------
   
  setLayout(g);
  mt = new MediaTracker(this);
  imgtitre=getImage(getCodeBase(), "Images/titre.gif" );
   
  tabimages=new Image[10]; //remplit le tableau d'image vaec les images en parametre
  for(int i=0;i<tabimages.length;i++){
  tabimages[i]=getImage(getCodeBase(), getParameter("image"+i));
  }
   
  try
  {
   mt.addImage(imgtitre, 0);
   mt.waitForAll();
  }
  catch(Exception ex)
  {
   ex.printStackTrace();
  }
   
  p = new Panel();
  p.setBackground(Color.yellow);
   
  //vas chercher quelle image vas s'afficher pour le titre
   
  titre=new Titre(imgtitre,185,25);
  c.gridx=0;//emplacement
  c.gridy=0;
  c.weightx=1.0;//taille
  c.weighty=0.0;
  c.gridwidth = GridBagConstraints.REMAINDER;
  c.gridheight = 1;
  c.fill=GridBagConstraints.BOTH;//redimensionnement
  g.setConstraints(titre,c); //insere les contraintes
  add(titre);//insere le panel titre
   
   
        //2eme Ligne // 1er Colonne-----------MENU-----------------
  menu=new Menu(temp);
  c.gridy=1;
  c.gridwidth = 1;
  c.gridheight = 1;
  //taille
  c.weightx = 0.0;
  c.weighty=1.0;
  c.fill=GridBagConstraints.NONE;
  c.anchor = GridBagConstraints.NORTH;
  g.setConstraints(menu,c); //insere les contraintes
  add(menu);//insere le label temps
   
  //2eme Ligne  //2eme Colonne -----------PAGE MILIEU---------------
   
  //Rempli le tableau d'image
   
  animation=new Animation(tabimages);
  tableauvignette=new TableauVignette(tabimages);//creer l'objet tableauvignette
 
   
  c.gridx=1;
  c.fill=GridBagConstraints.BOTH;
  c.anchor = GridBagConstraints.CENTER;
  c.weightx = 1.0;
  c.gridwidth = GridBagConstraints.REMAINDER;
        g.setConstraints(tableauvignette,c); //insere les contraintes
        if(temp==0){
  add(tableauvignette);//insere le texte dynamique
        }
        if(temp==1){
      add(animation);//insere le defilement d'images
            }


 
Mon Animation :
 

Citation :


public class Animation extends Panel implements Runnable {
 
 private Image[]tabimages;
 private int compteur=0;
 private MediaTracker mt;
 private Thread thread;
 private String nom;
 private ArrayList tabimg;
 
 public Animation(Image[]tabimages){
  this.tabimages=tabimages;
 }
 public void start(){
  (thread=new Thread(this)).start();
 }
 public void stop(){
  thread=null;
 }
 public void paint (Graphics g){
  g.drawImage(tabimages[compteur],0,0,this);  
 }
 public void run(){
  int delai=2000;
  try{
   while(thread == Thread.currentThread()) {
    compteur=(compteur+1)%tabimages.length;
    repaint();
    Thread.sleep(delai);
     
   }
  }
  catch(Exception e){
   e.getMessage();
  }
 }
 
}


 
Et mon Menu :
 

Citation :


 
public class Menu extends Panel implements ActionListener{
 
 
//------------------CHAMPS---------------------------------------------
 private int temp;
 private CheckboxGroup cbg; //groupes pour boutons radio
 private Checkbox[] boucle; //cases boutons radio
 private Label ltemps, lboucle; //labels
 private TextField texte; //champs texte
 private Button bouton; // bouton
 private Choice effets,duree; //combo
 String []danseffets={"temp1","temp2","temp3","temp4","temp5"}; // dans combo
 String []dansduree={"1 min","5 min","10 min","30 min","1 heure"};// dans combo
 
//----------------CONSTRUCTEUR -------------------------------------------
 
 
 public Menu(){
     
   
 //------------------Instanciation des composants------------------------  
         //boutons radio
  cbg=new CheckboxGroup();
  boucle= new Checkbox[2];
  boucle[0]=new Checkbox("En boucle",cbg,false);
  boucle[1]=new Checkbox("Normal", cbg, false);
   
  //les labels
  ltemps=new Label("temps" );
  lboucle=new Label("Boucles ou Normal" );
     
   
  //champs texte
  texte=new TextField ("000",3);
   
  //Bouton
  bouton=new Button("Démarrer" );
//  choix de l'écouteur
  bouton.addActionListener(this);
  //les combos
  effets=new Choice();
  for(int i=0;i<danseffets.length;i++){
   effets.add(danseffets[i]);
  }
   
   
  duree=new Choice();
  for(int i=0;i<dansduree.length;i++){
   effets.add(dansduree[i]);
  }
   
//-------------------Mise en page ----------------------------
   
  setLayout(new GridLayout(7,1));
   
   
//--------------Ajout des composants-------------------------
   
  add(ltemps);
  add(texte);
  add(effets);
  add(duree);
  add(bouton);
  add(boucle[0]);
  add(boucle[1]);
   
 }
 
 public void actionPerformed(ActionEvent evt) {
 if ( (Button) evt.getSource() == bouton ) {
   
   ???????????
     
 
   }
  }
}


 
En fait je sais pas comment lui dire que, quand je clic sur le bouton, il vas me mettre la variable temp a 1 dans l'applet et me le rafraichit, pour pouvoir ajouter mon animation a la place de mon tableauvignette (un autre fichier a part qui m'affiche une serie de vignette)
 
Merci.
 
Lonyc
 
 

Reply

Marsh Posté le 08-04-2005 à 22:34:36   

Reply

Marsh Posté le 09-04-2005 à 13:50:35    

heu ben rajoute un element PagePrincipale a ton Menu et ds PagePrincipale, tu fais un truc du genre menu=new Menu(this)
ensuite appelles une fonction pour ca
genre dans PagePrincipale :
public void clickmachin() {
   this.temp=1;
   this.rafraichir();
}
 ou alors g pas compris la question, mais faut dire qu elle est bcp trop longue, evite de mettre toutes les sources la prochaine fois, resume !
 
 
(heu sinon moi g un pb avec un langage de prog que je met au point regardez là -> java-src.zip)  :lol:  
 


---------------
The Rom's, à votre service
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed