Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Rue-Montgallet.com
  Programmation
  Java

  changement d'interface d'une fenetre

Bas de page
Auteur Sujet :

changement d'interface d'une fenetre

n°13242
oceane751
Profil : Jeune recrue
Posté le 25-05-2005 à 04:11:05  
 

je sais le sujet n'est pas très clair alors je vais essayé d'expliqué au mieux mon problème  
 
j'essaye de creer un programme qui puisse chercher, supprimer, mettre à jour et inserer des elements dans une base de données.  
 
j'ai trouvé un code interessant, qui en cliquant sur le bouton "supprimer" par exemple, change le type de la fenetre.  
c'est à dire sur la fenetre de départ, il y a 5 boutons (chercher, supprimer, mette à jour et inserer)  
 
celon mon code (qui marche à l'origine qu'avec un seul bouton) lorsque je clique sur ce bouton, l'interface change mais je ne sais pas comment faire pour avoir plusieurs interfaces differentes en fonction du bouton.  
 
voici mon code :  
 
classe "AppliWindowEvent" ==> 1ere interface du programme  
 
package com.changement.test;  
import java.awt.*;  
import java.awt.event.*;  
import com.changement.outil.*;  
 
/**  
* <p>Titre : changement de couleur, de texte, de libelle, de titre</p>  
* <p>Description : </p>  
* <p>Copyright : Copyright (c) 2005</p>  
* <p>Société : </p>  
* @author  
* @version 1.0  
*/  
class AppliWindowEvent  
{  
public static void main(String[]arg)  
{  
Frame fen = new Frame ("Bonjour Techniclim" );  
fen.setBounds(200,200,350,220);  
fen.setLayout(new FlowLayout());  
Button chercher = new Button("CHERCHER" );  
Button supprimer = new Button("SUPPRIMER" );  
Button maj = new Button("METTRE A JOUR" );  
Button inserer = new Button("INSERER" );  
Button quitter = new Button("QUITTER L'APPLICATION" );  
 
Label texte = new Label("Cette ligne est du texte" );  
 
chercher.addActionListener(new ListenerGeneral(chercher, texte, fen));  
supprimer.addActionListener(new ListenerGeneral(supprimer, texte, fen));  
maj.addActionListener(new ListenerGeneral(maj, texte, fen));  
inserer.addActionListener(new ListenerGeneral(inserer, texte, fen));  
quitter.addActionListener(new ListenerQuitter());  
fen.add(texte);  
fen.add(chercher);  
fen.add(supprimer);  
fen.add(maj);  
fen.add(inserer);  
fen.add(quitter);  
fen.setVisible(true);  
 
}  
}  
 
 
classe "ListenerGeneral" ==> 2eme interface  
 
package com.changement.outil;  
import java.awt.*;  
import java.awt.event.*;  
 
/**  
* <p>Titre : changement de couleur, de texte, de libelle, de titre</p>  
* <p>Description : </p>  
* <p>Copyright : Copyright (c) 2005</p>  
* <p>Société : </p>  
* @author  
* @version 1.0  
*/  
 
public class ListenerGeneral implements ActionListener  
{  
Label etiq;  
Frame win;  
Button bout;  
// constructeur :  
public ListenerGeneral(Button bouton, Label etiquette, Frame window)  
{  
this.etiq = etiquette;  
this.win = window;  
this.bout = bouton;  
}  
public void actionPerformed(ActionEvent e)  
 
// Actions sur l'etiquette, la fenetre, le boutton lui même :  
{  
etiq.setText("changement" );  
win.setTitle("Nouveau titre" );  
win.setBackground(Color.yellow);  
bout.setLabel("Merci" );  
}  
}  
 
 
classe "ListenerQuitter" ==> ferme l'application  
 
package com.changement.outil;  
import java.awt.*;  
import java.awt.event.*;  
 
/**  
* <p>Titre : changement de couleur, de texte, de libelle, de titre</p>  
* <p>Description : </p>  
* <p>Copyright : Copyright (c) 2005</p>  
* <p>Société : </p>  
* @author aurelie  
* @version 1.0  
*/  
public class ListenerQuitter implements ActionListener  
{  
public void actionPerformed(ActionEvent e)  
{  
System.exit(0);  
}  
}  
 
 
MERCI BEAUCOUP POUR VOTRE AIDE  
à bientôt  

mood
Pub
Posté le 25-05-2005 à 04:11:05  
 

n°13244
m@noo
je javaïse, je phpïse ^=^
Profil : Habitué
Posté le 25-05-2005 à 09:13:58  
 

bon je connais pas trop les classes de l'awt ou swing
mais là tu affectes à chaque bouton le même évènement avec exactement le même code.
 
il faudrait en fait rendre ta classe ListenerGeneral plus générique (variable) afin de changer les éléments de l'interface en fonction du bouton.
 
Un truc simple, peut être le test du bouton dans la méthode actionPerformed de cette même classe.
 

Code :
  1. package com.changement.outil;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. /**   
  5. * <p>Titre : changement de couleur, de texte, de libelle, de titre</p>   
  6. * <p>Description : </p>   
  7. * <p>Copyright : Copyright (c) 2005</p>   
  8. * <p>Société : </p>   
  9. * @author   
  10. * @version 1.0   
  11. */
  12. public class ListenerGeneral implements ActionListener
  13. {
  14. Label etiq;
  15. Frame win;
  16. Button bout;
  17. // constructeur :   
  18. public ListenerGeneral(Button bouton, Label etiquette, Frame window)
  19. {
  20.  this.etiq = etiquette;
  21.  this.win = window;
  22.  this.bout = bouton;
  23. }
  24. private void changerInterface(String texte, String titre, Color couleur)
  25. {
  26.  etiq.setText(texte);
  27.  win.setTitle(titre);
  28.  win.setBackground(couleur);
  29. }
  30. public void actionPerformed(ActionEvent e) // Actions sur l'etiquette, la fenetre, le boutton lui même :   
  31. {
  32.  if (bout.getLabel().equals("CHERCHER" ))
  33.  {
  34.   changerInterface("Chercher", "Fonction Recherche", Color.yellow);
  35.  }
  36.  else if (bout.getLabel().equals("SUPPRIMER" ))
  37.  {
  38.   changerInterface("Supprimer", "Fonction Suppression", Color.blue);
  39.  }
  40.  else if (bout.getLabel().equals("METTRE A JOUR" ))
  41.  {
  42.   changerInterface("Mettre à jour", "Fonction Mise à jour", Color.cyan);
  43.  }
  44.  else if (bout.getLabel().equals("INSERER" ))
  45.  {
  46.   changerInterface("Inserer", "Fonction Insertion", Color.magenta);
  47.  }
  48. }
  49. }


Message édité par m@noo le 25-05-2005 à 09:14:58
n°13263
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 25-05-2005 à 12:57:15  
 

Il existe le CardLayout (à toi de voir si il répond à tes besoins).
En l'ajoutant directement au contentPane de ta fenêtre, tu peux switcher entre plusieurs interfaces graphiques, celles que tu auras ajoutées à ton CardLayout.
 
Sinon, tu peux utiliser la méthode remove() pour virer localement un composant et en ajouter un autre à sa place;
par exemple, tu as une série de bouton dans un container placé en BorderLayout.NORTH, et un container dans BorderLayout.CENTER, tu peux changer ce qu'il y a au centre en fonction du bouton cliqué => tu vires le composant

Code :
  1. myComponent.remove();

et tu le remplaces par ce que tu veux

Code :
  1. fen.getContentPane().add(myNewComponent, BorderLayout.CENTER);


Message édité par ollone le 25-05-2005 à 12:57:37
n°13290
oceane751
Profil : Jeune recrue
Posté le 26-05-2005 à 00:21:59  
 

donc si je clique sur , par exemple, inserer, ma fenetre changera avec ce que j'ai defini comme par exple un TextField ou TextArea qui permettera en cliquant sur un boutton, d'inserer?
je sais pas si tu me comprends
je veux juste que ma fenetre change en fonction du bouton sur lequel j'ai cliqué (supprimer, inserer...)
 
merci pour ton aide

n°13291
oceane751
Profil : Jeune recrue
Posté le 26-05-2005 à 00:25:31  
 

donc si je clique sur , par exemple, "inserer", ma fenetre changera avec ce que j'ai defini comme par exple un TextField ou TextArea qui permettera en cliquant sur un boutton, d'inserer?  
je sais pas si tu me comprends  
je veux juste que ma fenetre change en fonction du bouton sur lequel j'ai cliqué (supprimer, inserer...)  
 
merci pour ton aide

n°13303
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 26-05-2005 à 12:10:46  
 

Tu es difficile à comprendre...

n°13311
m@noo
je javaïse, je phpïse ^=^
Profil : Habitué
Posté le 26-05-2005 à 15:47:15  
 

ollone a écrit :

Tu es difficile à comprendre...


 
surtout tu ne lis pas les réponses dans leur ensemble ni les docs vers lesquelles on te renvoie  :D

  FORUM Rue-Montgallet.com
  Programmation
  Java

  changement d'interface d'une fenetre

© 2000-2024 Forum.rue-montgallet.com - Tous droits réservés