Gérer le forum:  Aide  •  Rechercher  •  Liste des Membres  •  Groupes d'utilisateurs   •  S'enregistrer  •  Profil  •  Se connecter pour vérifier ses messages privés  •  Connexion 
 changement d'interface d'une fenetre Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujetRépondre au sujet
Auteur Message
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Mer 25 Mai 2005 - 04:08 Répondre en citantRevenir en haut

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 :

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
* @version 1.0
*/
public class ListenerQuitter implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}



MERCI BEAUCOUP POUR VOTRE AIDE
à bientôt
Voir le profil de l'utilisateurEnvoyer un message privé

N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire.
queskispace
Accro à Web-IG
Accro à Web-IG


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 194
Localisation: En ce moment, derrière mon pc

MessagePosté le: Mer 25 Mai 2005 - 12:47 Répondre en citantRevenir en haut

Alors d'apres ce que j'ai compris il faudrai que les composants de la fenetre change quand tu appuie sur un bouton ??
Si c'est ca y'a deux solutions :
- Soit ta méthode vas modifier le panel de ta fenetre (fonction de suppression et d'ajout d'evenements) mais bon le problème c'est qu'a chaque fois que t'appuie sur le bouton il faudra redessiner completement ta fenetre.
- Soit tu fait un Container pour chacune des interface que tu desire et tu n'affiche que celui que tu veux. La méthode c'est JPanel.setContentPane(Container). Les avantages de cette méthode c'est que tu peux mettre ton container la ou tu veux, tu peux decider par exemple de garder une partie static qu'elle que soit l'affichage.

Bon apres j'espere avoir bien compris ton problème...

_________________
Tout a une fin sauf le saucisson qui en a deux
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
queskispace
Accro à Web-IG
Accro à Web-IG


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 194
Localisation: En ce moment, derrière mon pc

MessagePosté le: Mer 25 Mai 2005 - 12:58 Répondre en citantRevenir en haut

Ah oui aussi, un petit conseil, t'es pas obligé de faire une classe public différente pour chacune de tes classes, par exemple pour tes ActionListener, ca t'evitera de faire plein de fichiers.

Ce qu'il faut faire dans ce cas la c'est de créer tes classes en private à l'intérieur d'une classe public. Le premier avantage c'est que les méthodes de ta classe private auront accès aux attributs de ta classe public de base, car en fait ta classe privée fait aussi partie des attributs de la classe public... Dsl c'est peut etre pas clair
En gros ca t'evitera de devoir definir des constructeurs pour pouvoir récupérer des valeurs à utiliser dans les evenements !!!

Y'a un autre moyen de faire, qui est utilisé surtout pour les evenements c'est d'instancier et de declarer ta classe directement dans le code. Jte fait un exemple parsk'a expliker c'est pas super simple :

Code:

JLabel toto = new JLabel("Toto");
toto.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
      // Tu met ton code pour l'action ici
   }
}) ;

Et voila, t'economise plein de ligne, et c'est beaucoup plus rapide a l'execution !!! Et bien sur tu peux aussi utiliser les attributs private de la classe pub !!!
Bon par contre tu peux pas facilement récupérer l'instance de ta classe ensuite, mais dans le cas d'un evenement, ton instance elle sert qu'une seul fois :)

_________________
Tout a une fin sauf le saucisson qui en a deux
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Jeu 26 Mai 2005 - 00:24 Répondre en citantRevenir en haut

donc (pour ta methode) 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
Voir le profil de l'utilisateurEnvoyer un message privé
queskispace
Accro à Web-IG
Accro à Web-IG


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 194
Localisation: En ce moment, derrière mon pc

MessagePosté le: Jeu 26 Mai 2005 - 09:23 Répondre en citantRevenir en haut

Ben dans tout les cas ma méthode marche pour changer ta fenetre, apres y'a peut-etre un moyen plus simple pour le faire.
Je dois t'avouer par contre que j'ai toujours pas très bien compris ce que tu voulais exactement faire.
Qu'est ce qui doit changer sur ta fenetre ?
Qu'est ce que tu insere ? du texte, des composants ?

_________________
Tout a une fin sauf le saucisson qui en a deux
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
oceane751
Forumeur fréquent
Forumeur fréquent


BTS IG - Option développeur 2ème année
Sexe: Sexe:Féminin
Messages: 93

MessagePosté le: Jeu 26 Mai 2005 - 17:53 Répondre en citantRevenir en haut

bon ok je reexplique

en faite j'ai ma 1ere fentre où il y a tous les boutons(supprimer, mettre à jour....)
mais je pense que le plus pratique serait, que lorsque je clik sur un bouton, une autre fenetre s'ouvre(propre au bouton qui a été cliké precedement) avec plus ou moins de composants celon le bouton cliké
car mon projet serait de supprimer(par exemple)... des elements d'une base de données Mysql

en faite dans l'idée precedente, je voulais, lorsque je clik sur un bouton, que cette même fenetre affiche les composants du bouton cliké

j'espere que mon explication t'aidera à mieux comprendre ce que je veux faire
Voir le profil de l'utilisateurEnvoyer un message privé
Montrer les messages depuis:      
Poster un nouveau sujetRépondre au sujet
 Sauter vers:   



Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum