Problème sur la portée des variables

cs_manou9 Messages postés 52 Date d'inscription mardi 9 mars 2010 Statut Membre Dernière intervention 30 mars 2011 - 17 avril 2010 à 12:40
tlaloctzin Messages postés 136 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 12 septembre 2013 - 18 avril 2010 à 14:48
Bonjour
J'ai une classe Deliberations qui contient une méthode auto générée private void formWindowOpened(java.awt.event.WindowEvent evt)et voici le corps de la classe :

try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.err.println(e) ;
System.exit (-1) ;
}

try {
// Création d'une connexion à la base
Connection ma_connection = (Connection)DriverManager.getConnection(
"jdbc:mysql://localhost:3306/my db",
"root",
""
);


String sql = "SELECT DISTINCT Wilaya FROM candidat";
Statement stm = (Statement) ma_connection.createStatement();
ResultSet rst = stm.executeQuery(sql);
while (rst.next()){
int S = rst.getInt("Wilaya");
jComboBox1.addItem(S);
}
//jComboBox1.addItemListener(new ItemState());

// Fin de ItemListener
ma_connection.close();
}
catch (java.sql.SQLException e) {
System.err.println(e);
System.exit(-1);
}

jComboBox1.addItemListener((ItemListener) new ItemListener (){
public void itemStateChanged(ItemEvent e){
//jComboBox2.removeAllItems();

if (e.getStateChange()==ItemEvent.SELECTED){
String T =jComboBox1.getSelectedItem().toString();


int T1 = Integer.parseInt(T);
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException n) {
System.err.println(n) ;
System.exit (-1) ;
}
try {
Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/my db",
"root",
""
);

String sql1 "SELECT DISTINCT CD FROM candidat WHERE Wilaya"+T1;
Statement stm1 = (Statement) con.createStatement();
ResultSet rst1 = stm1.executeQuery(sql1);
jComboBox2.removeAllItems();
while (rst1.next()){
jComboBox2.setEnabled(true);
int S1 = rst1.getInt("CD");
jComboBox2.addItem(S1);
}

con.close();
}
catch (java.sql.SQLException n) {
System.err.println(n);
System.exit(-1);
}

}}


});

jComboBox2.addItemListener((ItemListener)new ItemListener(){

public void itemStateChanged(ItemEvent x) {

if (x.getStateChange()==ItemEvent.SELECTED){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException n) {
System.err.println(n) ;
System.exit (-1) ;
}
try {
Connection con = (Connection) DriverManager.getConnection(
"jdbc:mysql://localhost:3306/my db",
"root",
""
);

// je veux récuperer les valeurs de ces 2 variables T1 et C1 dans une autres classe

String T = jComboBox1.getSelectedItem().toString();
int T1 = Integer.parseInt(T);
String C = jComboBox2.getSelectedItem().toString();
int C1 = Integer.parseInt(C);



PreparedStatement stmt = (PreparedStatement) con.prepareStatement("DELETE FROM Classement");
int s = stmt.executeUpdate();
PreparedStatement mon_statement = (PreparedStatement) con.prepareStatement("INSERT INTO Classement (Num_seq,Nom,Prenom,CG,MAC,MS1,MS2,MS3,Moyenne,Decision) SELECT Num_seq,Nom,Prenom,CG,MAC,MS1,MS2,MS3,Moyenne,Decision FROM deliberations WHERE Wilaya="+T1+" AND CD="+C1+" ORDER BY Moyenne DESC");
int r = mon_statement.executeUpdate();
String sql1 = "SELECT * FROM Classement";
Statement stmt1 = (Statement) con.createStatement();
ResultSet rst1 = stmt1.executeQuery(sql1);
rst1.absolute(1);
int n = rst1.getInt("Num_seq");


PreparedStatement stm = (PreparedStatement) con.prepareStatement("UPDATE Classement SET Decision='Admis' WHERE Num_seq="+n);

if ( rst1.absolute(2)){
int n1 = rst1.getInt("Num_seq");
PreparedStatement stm1 = (PreparedStatement) con.prepareStatement("UPDATE Classement SET Decision='Admis' WHERE Num_seq="+n1);
int r2 = stm1.executeUpdate();
}
if (rst1.absolute(3)){
int n2 = rst1.getInt("Num_seq");
PreparedStatement stm2 = (PreparedStatement) con.prepareStatement("UPDATE Classement SET Decision='Reserve' WHERE Num_seq="+n2);
int r3 = stm2.executeUpdate();
}
if (rst1.absolute(4)){
int n3 = rst1.getInt("Num_seq");
PreparedStatement stm3 = (PreparedStatement) con.prepareStatement("UPDATE Classement SET Decision='Reserve' WHERE Num_seq="+n3);
int r4 = stm3.executeUpdate();
}



int r1 = stm.executeUpdate();
con.close();
}
catch (java.sql.SQLException n) {
System.err.println(n);
System.exit(-1);
}
}}

});


*************************
Je veux récuperer les valeurs des 2 variables T1 et C1 dans une autre classe f5
Comment faire?
j'ai pensé à crée une autre classe qui contient ces 2 variables
public class DispVar extends Deliberations{

public int W;
public int D;

public int getW(){
return this.T1;
}

public void SetW(int W1){
this.W = W1;
}

public int getD(){
return this.C1;
}

public void SetD(int D1){
this.D = D1;
}


}

Mais elle me retourne toujours les valeurs initiaux
Aidez-moi SVP

1 réponse

tlaloctzin Messages postés 136 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 12 septembre 2013 3
18 avril 2010 à 14:48
Salut t as qu a faire une classe extends object avec des getters et setters , comme ca tu geres un objet et quand tu veux connaitre les valeurs dans une methose , tu mets le handdler en argument.

public class DispVar extends Object{

public int W;
public int D;

public DispVar(){

}

public int getW(){
return this.T1;
}

public void SetW(int W1){
this.W = W1;
}

public int getD(){
return this.C1;
}

public void SetD(int D1){
this.D = D1;
}


} 
//*******************************************
DispVar disp = new DispVar();
int dispVar  = disp.getW();




Il vaut mieu être riche et en bonne santé que pauvre et malade .
0
Rejoignez-nous