Appeler un bouton alors qu'il est dans une class a part

Appeler un bouton alors qu'il est dans une class a part - Java - Programmation

Marsh Posté le 04-04-2005 à 15:33:48    

Bonjour,
 
Voila c'est au sujet d'un diaporama.
 
J'ai:
- un fichier titre.class : image du titre
- un fichier Menu.class c'est un panel avec a l'interieur un bouton, 1 choice, un textfield ect..
- un fichier Tableauvignette.class c'est un panel avec un gridlayout (sert a ranger les image en 3 lignes, 3 colonnes) appel vignette()
- un fichier vignette qui lui est un canvas qui me sert d'objet pour mes images
- un fichier Pageprincipale.class : c'est mon applet avec un gridbaglayout qui appel mon titre.class en haut, mon menu.class a gauche et mon Tableauvignette au milieu
 
Mais voila le probleme : je veux appeler un thread qui remplaceras Tableauvignette dans la page du milieu de mon applet quand on appuis sur le bouton start (qui se trouve dans mon menu).
Les images defilerons de la maniere a ce que l'utilisateur auras choisi dans le choice (effets) et vitesse de defilement (textfield).  
 
Mais je ne sais pas comment lui dire dans menu.class qui doit remplacer le tableauvignette qui se trouve dans mon applet par mon thread  :heink:  
 
Merci pour votre aide !!  
 
 
 
 
 
 
 
 
 

Reply

Marsh Posté le 04-04-2005 à 15:33:48   

Reply

Marsh Posté le 04-04-2005 à 15:57:00    

euh je sais pas trop, je debute en fait et c'est pas facile.
C'est quoi les liens de compositions ? Par ce que par exemple dans mon applet quand je veux mon menu je fait menu=new Menu(); après l'avoir declaré plus haut.

Reply

Marsh Posté le 04-04-2005 à 16:10:39    

en fait dans Pageprincipale j'ai :
private Menu menu;
private Titre titre;
private Image imgtitre (pour l'image dans mon titre);
private TableauVignette tableauvignette;
 
et a des que j'en ai besoin je fait
menu=new Menu();
titre=new Titre();
tableauvignette=new TableauVignette();
 
Par contre dans mon fichier Menu je peux lui faire faire un Actionlistener (enfin je crois que c ca) qui vas lui dire de remplacer tableuvignette par mon futur thread ?

Reply

Marsh Posté le 04-04-2005 à 16:28:31    

Et si je copie carrement la class Menu et que je la colle dans mon applet (a la suite)  
 
public class Pageprincipale extends Applet {
-
-
public void init(){
.
.
.
}
public class Menu extends Panel{
 
     public Menu(){
 
                  }
}
}
 
Ca marcherais ?
 
Comme c'est un projet que je doit faire il faut que je fasse comme le prof a demandé donc le bouton a l'interieur du menu (enfin visuellement)

Reply

Marsh Posté le 04-04-2005 à 16:36:12    

ok en fait je rajoute l'action au bouton "a travers" mon applet ?

Reply

Marsh Posté le 04-04-2005 à 16:41:45    

public PagePrincipale() {  
      menu = new Menu();  
      this.addActions();  
   }  
 
Ca ne fonctionne pas car je crois que je ne peux pas dans une applet c'est init()
 

Reply

Marsh Posté le 04-04-2005 à 16:47:46    

J'avais commencé ca a la fin de mon menu :
public void actionPerformed(ActionEvent evenement) {
   if (evenement.getActionCommand().equals("Démarrer" )) {
 
   Monthread.start();
}
 
mais Eclipse me souligne Monthread.start();
 
Mon fichier thread c ca :
 
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Image;
 
/*
 * Created on 1 mars 2005
 */
public class Monthread extends Canvas implements Runnable {
 
 //champs
 private Image image;
 private Image [] tabimages;
 private Graphics g2;
 private Thread t;
 private Vignette vignette;
 private int compteur=0;
 
 
 public void MonThead(Image[]tabimages){
   
  this.tabimages = tabimages;
  //creer une image avec largeur et hauteur
  image=createImage(getWidth(),getHeight());
   
  g2=image.getGraphics();
   
}
 
 public void paint(Graphics g){
  //Efface ce qu'il y a dans l'image
  g2.clearRect(0,0,getWidth(),getHeight());
  //on dessine dans l'image qu'on a créée
  image=tabimages[0];
  g.drawImage(image,0,0,this);
   
   
 }
 
 
  public void run()
  {
   
   try
   {
    while(true)
    {
     t.sleep(1000);
     compteur = (compteur + 1) % 18;
     image = tabimages[compteur];
     repaint();
    }
   }
   catch(Exception ex)
   {
    ex.printStackTrace();
   }
  }
 
 
 
public void start(){
 t=new Thread(this);
 t.start();
}
 
public void stop(){
 t=null;
}
 
public void update(Graphics g){
 paint(g);
}
 
}
 
J'ai pas encore bien vu le thread c'est un ancien que j'ai pris et qui fesais defilé des images
     
   }

Reply

Marsh Posté le 04-04-2005 à 16:49:29    

ou alors je devrais inserer peut etre mon thread dans TableauImages.class ? comme ca des qu'on clic ca change directement le tableauimage ?

Reply

Marsh Posté le 04-04-2005 à 18:02:33    

oui lol mais bon le principal c'est que ca marche je dois rendre mon projet dans 2 semaines. Je pourrais toujours "l'affiner" après.
Bon pour ce soir j'ai plus le temps, merci de m'avoir aidé. Je reprend mon projet mercredi, je repasserais surement ;)

Reply

Sujets relatifs:

Leave a Replay

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