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");
public modifier_personne (){
Connection con ;
String temp= new String();
setBounds (100,100,500,500);
tf.addItemListener((ItemListener) this);
getContentPane().setLayout((new GridLayout (8,2)));
getContentPane().add((new JLabel("Sélectionner une personne :")));
getContentPane().add(tf );
getContentPane().add((new JLabel("Numéro : ")));
getContentPane().add(num);
getContentPane().add((new JLabel("Nom : ")));
getContentPane().add(nom);
getContentPane().add((new JLabel("Prénom : ")));
getContentPane().add(prenom);
getContentPane().add((new JLabel("Adresse mail : ")));
getContentPane().add(mail);
getContentPane().add((new JLabel(" ")));
getContentPane().add((new JLabel(" ")));
getContentPane().add((new JLabel("Valider changements : ")));
getContentPane().add(btmodifp);
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();
Component component=this;
do{
component=component.getParent();
} while(!(component instanceof Frame));
return (Frame)component;
}
boitedialogue(String num,String nom, String prenom, String mail){
this.g_num= num;
this.g_nom =nom;
this.g_prenom =prenom;
this.g_mail =mail;
//System.out.println(this.g_num+this.g_nom +this.g_prenom);
JOptionPane bd = new JOptionPane();
int retour = JOptionPane.showConfirmDialog(getFrame(),"Confirmer les changements ?","Confirmation",JOptionPane.OK_CANCEL_OPTION);
}
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if("ok".equals(e.getActionCommand())){
Connection con ;
try {
System.out.println(boitedialogue.g_num+boitedialogue.g_nom + boitedialogue.g_prenom);
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
con = DriverManager.getConnection("jdbc:oracle:thin:@172.16.1.17:1521:bdoracle","lehouxa","audrey");
//System.out.println("Connection réussie");
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery("Update Adresse_mail set nom='"+g_nom+"',prenom='"+g_prenom+"', adresse='"+g_mail+"' where num='"+g_num+"' ");
}
catch(SQLException e1){
System.out.println("SQLException"+e1);
}
catch(Exception e2){
System.out.println("Exception"+e2);
//e2.printStackTrace();
}
}
}
}
Voilà,voilà...
Merci à ceux qui auront une petite idée pour m'aider (et autres aussi lol !!)