Recuperer un objet

Signaler
Messages postés
11
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
6 avril 2008
-
Messages postés
11
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
6 avril 2008
-
hey!

je ne sais pas comment faire pour recuperer un objet issu de la meme classe et qui doit etre utiliser par un ActionPerformed

public classe classe1
{
......
requete sql
.....
String ee = re.getString(

"adresse");

}

public

void actionPerformed(ActionEvent e) {

et là j'aimerai pouvoir recuperer mon objet ee

}

quelqu'un pourrait m'aider?

 

6 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
125
Salut,

Dans quoi est déclaré ton objet ee ? Dans une fonction ?

Ca dois sûrement être un problème de portée de variable.
______________________________________
DarK Sidious
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Comme DarkSidious vient de le dire, ici il y a un problème de portée d'une variable qui est locale dans notre cas.

Pour que la variable [ee] soit visible, il faut la déclarer comme étant attribut de ta classe.

public class AClass {
    // Attributs de la classe
    private String address;

    public void setAddress(String address) {this.address = address;}  
    public String getAddress() {return address;}

    // Une méthode quelque part   
    address = rs.getString("adresse");
}

public class AnActionListenerImpl implements ActionListener {
    private AClass instance;
    public AnActionListenerImpl(AClass instance) {
       this.instance = instance;
    }
    public void actionPerformed(ActionEvent actionEvent) {
       // Récupérer la variable [address]
       String adr = instance.getAddress();
    }
}
Messages postés
11
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
6 avril 2008

oui mais si la declaration de ee se trouve dans le constructeur?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
125
Salut,

Une variable a une portée de là où elle est déclarée :

class Toto {
    private String titi; // sera visible dans toute la classe

    public Toto() { // constructeur
       String tata; // sera visible que dans le constructeur !
       titi = "titi"; // ok
       tata = "tata"; // ok
       tutu = "tutu"; // erreur !
    }

    public String fonction() {
       String tutu;
        titi = "titi"; // ok
       tata = "tata"; // erreur !
       tutu = "tutu"; //ok
    }
}

Donc si ta variable ee est déclarée DANS le constructeur et non DANS ta classe, elle ne sera pas visible dans les fonctions de ta classe !
______________________________________
DarK Sidious
Messages postés
11
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
6 avril 2008

ah oauis d'accord!
et ça marche quand meme quand le ee,  est issu d'un while ?
Messages postés
11
Date d'inscription
vendredi 7 mars 2008
Statut
Membre
Dernière intervention
6 avril 2008

peut etre qu'avec mon code, ça vous aidera à mieu repondre à ma dernièere question

import

java.awt.GridLayout;
import

java.awt.event.ActionEvent;
import

java.sql.Connection;
import

java.sql.DriverManager;
import

java.sql.ResultSet;
import

java.sql.Statement;

import

javax.swing.JButton;
import

javax.swing.JFrame;
import

javax.swing.JPanel;

 

public

class Eleve
extends JFrame {

JButton

button =
new JButton();JPanel

pan =
new JPanel();

private String
dateNaiss;

public Eleve(){

String pilote =

"com.mysql.jdbc.Driver";

try {

Class. forName (pilote);

Connection conn = DriverManager.getConnection(

"jdbc:mysql://localhost/eleves",
"root",
"");Statement stmt = conn.createStatement();
String requete "SELECT date_naiss FROM eleves";ResultSet resultat stmt.executeQuery(requete);

while (resultat.next()){

dateNaiss = resultat.getString(
"date_naiss");

button =
new JButton (
"date de naissance le : "+
dateNaiss);

pan.add(
button);setContentPane(

pan);

}

}

catch (Exception e){

System.

out .println(
"echec pilote : "+e);}

}

public
void actionPerformed(ActionEvent e) {

if (e.getSource().equals(
button)){

String pilote =

"com.mysql.jdbc.Driver";

try{

Class.forName(pilote);

Connection conn = DriverManager. getConnection (

"jdbc:mysql://localhost/eleves",
"root",
"");Statement stmt = conn.createStatement();
String rekette "SELECT nom_eleve FROM eleve WHERE date_rdv "+
"""+
dateNaiss+
""";System.

out .println(rekette);ResultSet resultatt = stmt.executeQuery(rekette);

try {

while (resultatt.next()){

String nom = resultatt.getString(

"nom_eleve");System.

out .println(
"nom_eleve" +nom);

}

}

catch (Exception e1){

System.

out.println(
"echec pilote : "+e1);}

}

catch (Exception e1){

System.

out.println(
"echec pilote : "+e1);}

}

}

public
static
void main(String[] args) {Eleve elv =

new Eleve();elv.setSize(200,200);

elv.setVisible(

true);

}

}

merci encore