Dedeloux
Messages postés11Date d'inscriptionjeudi 8 juillet 2004StatutMembreDernière intervention22 mars 2006
-
20 mai 2005 à 17:00
Dedeloux
Messages postés11Date d'inscriptionjeudi 8 juillet 2004StatutMembreDernière intervention22 mars 2006
-
25 mai 2005 à 10:14
Salut !!!
J'ai un gros problème (petit diront certains !!) je voudrais passer des paramètres entre deux frames mais je n'y arrive pas bien sur. Explications : J'ai une classe modifier_personne dans laquelle j'affiche les champs d'une base de données oracle. Je peux modifier ces champs Pour enregistrer les modifications, je clique sur un bouton modifier. J'ouvre un boite de dialogue OK/ Annuler. Je veux que quand je clique sur ok, les champs modifiés s'enregistrent dans la base de données. Mon problème c'est que je n'arrive pas à récupérer ces champs puisque que je ne suis plus sur la frame modifier_personne... Enfin voilà, j'espère que vous comprenez mon problème.
Pour vous aider voici un bout de code :
public class modifier_personne extends JFrame implements ItemListener{
Choice tf = new Choice ();
public JTextField num =new JTextField();
JTextField nom =new JTextField();
JTextField prenom =new JTextField();
JTextField mail =new JTextField();
Vector tab = new Vector();
JButton btmodifp = new JButton("Modifier");
btmodifp.addActionListener(
new ActionListener(){
public void actionPerformed (ActionEvent e){
String num1 = new String();
String nom1 = new String();
String prenom1 = new String();
String mail1 = new String();
num1= new Integer(((resultat) tab.elementAt(tf.getSelectedIndex())).num).toString();
nom1 = nom.getText();
prenom1 = prenom.getText();
mail1 = mail.getText();
new boitedialogue(num1,nom1,prenom1,mail1).show();
setVisible(false);
}
}
);
public class boitedialogue extends JDialog implements ActionListener{
public String g_num = new String();
String g_nom =new String();
String g_prenom =new String();
String g_mail =new String();
Frame getFrame() { // récupération de la frame parente
//modifier_personne.this.getNom();
hades5
Messages postés25Date d'inscriptiondimanche 26 décembre 2004StatutMembreDernière intervention 5 juin 2007 20 mai 2005 à 20:09
Salut,
juste une petite suggestion... pourquoi tu n'utiliserais pas ta boite de dialogue pour juste
demander une confirmation des modifications apportées sur les champs de la classe
modifier_personne ? ....
Autrement, tu crées des valeurs null dans ton instruction SQL ( ..ResultSet rset = stmt.executeQuery("Update Adresse_mail set
nom='"+g_nom+"',prenom='"+g_prenom+"', adresse='"+g_mail+"' where
num='"+g_num+"' ");
Si tu regardes bien tu dis #### ..g_nom ; g_prenom etc... ces méthodes quand tu les appelles,
elles font ce que tu leur demandes de faire c'est-à-dire, créer un autre object ( new String () ;
Voici les modifications que tu devrais apporter ....
public class boitedialogue extends JDialog implements ActionListener{ public String g_num = new String();
String g_nom = "" ; // new String();
String g_prenom = "" ; // new String();
String g_mail = "" ; // new String();
.......
JOptionPane bd = new JOptionPane();
int retour =
JOptionPane.showConfirmDialog(getFrame(),"Confirmer les changements
?","Confirmation",JOptionPane.OK_CANCEL_OPTION);
// condition à ajouter après le bloc si-dessus
if ( retour == 1 ) // je crois que c'est la valeur correspondant à "OK" à vérifier car je suis loin de chez moi actuellement.
{
Cette fois tu peux vérifier tes variables ont les valeurs initialisées par ton constructeur de classe
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 20 mai 2005 à 22:15
utilise les convention d ecriture java ce sera bcp agreable pour les autres à corrigé la je doit dire que au bout de 2 lignes ca m agace ;-(
pas de majuscule des '_' on dirai un utilisateur MFC ;o) ....
Dedeloux
Messages postés11Date d'inscriptionjeudi 8 juillet 2004StatutMembreDernière intervention22 mars 2006 25 mai 2005 à 10:14
En fait il faut juste remplacer la ligne : if (retour = = 1) par if (retour = = JOptionPane.OK_OPTION) et ça marche. Merci beaucoup pour ton aide Hadès.