[Java] Comment faire retourner une string ?
Fermé
pbaudru
-
18 févr. 2010 à 07:45
choubaka Messages postés 39424 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 4 avril 2025 - 3 mars 2010 à 11:06
choubaka Messages postés 39424 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 4 avril 2025 - 3 mars 2010 à 11:06
A voir également:
- [Java] Comment faire retourner une string ?
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Retourner ecran pc - Guide
- Comment retourner une video - Guide
- Java apk - Télécharger - Langages
19 réponses
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
3 mars 2010 à 11:06
3 mars 2010 à 11:06
pour récupérer les valeurs de ta liste, tu dois itérer (boucle) ta liste et sortir tes objets un par un. A mon avis
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
18 févr. 2010 à 09:53
18 févr. 2010 à 09:53
Salut
Dans ta classe DBCon, tu dois simplement créer une méthode publique du style:
public String getStringFromDB()
cette méthode te renverra ton string.
Dans ta classe DBCon, tu dois simplement créer une méthode publique du style:
public String getStringFromDB()
cette méthode te renverra ton string.
Salut choubaka,
Merci beuacoup pour votre message !
Alors pour une String simple ça marche bien.....ci-dessous l'appel de la méthode.
//gestion PBfiltrer
if (event.getSource() == PBfiltrer) {
String filtre = EFfiltre1.getText();
EFfiltre5.setText(DB.connection(filtre));
}
Dans ce cas ci-dessus j'ai directement accés a la valeur retournée.
Mais j'ai besoin de faire retourner une STRING [] (array) avec plusieurs occurences......pas uniquement une simple string.
Comment faire pour avoir accés aux occurences d'une string [] ?
Peux-je faire ça ?
EFfiltre5.setText(DB.connection(filtre[0]));
EFfiltre5.setText(DB.connection(filtre[1]));
EFfiltre5.setText(DB.connection(filtre[2]));
Merci beaucoup. Pierre.
Merci beuacoup pour votre message !
Alors pour une String simple ça marche bien.....ci-dessous l'appel de la méthode.
//gestion PBfiltrer
if (event.getSource() == PBfiltrer) {
String filtre = EFfiltre1.getText();
EFfiltre5.setText(DB.connection(filtre));
}
Dans ce cas ci-dessus j'ai directement accés a la valeur retournée.
Mais j'ai besoin de faire retourner une STRING [] (array) avec plusieurs occurences......pas uniquement une simple string.
Comment faire pour avoir accés aux occurences d'une string [] ?
Peux-je faire ça ?
EFfiltre5.setText(DB.connection(filtre[0]));
EFfiltre5.setText(DB.connection(filtre[1]));
EFfiltre5.setText(DB.connection(filtre[2]));
Merci beaucoup. Pierre.
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
18 févr. 2010 à 11:16
18 févr. 2010 à 11:16
c'est tout à fait possible, le seul problème c'est la variable qui va t'indiquer l'occurence.
la méthode de récupération de l'array ne pose pas de problème
public String getStringFromDB()
elle a juste besoin d'un argument à un moment donné
public String getStringFromDB(int i)
return tonString[i];
Dans la valeur de retour, tu récupères le string associé.
Comme je dis plus haut, le plus difficile sera d'indiquer l'occurence via la valeur int en argument
la méthode de récupération de l'array ne pose pas de problème
public String getStringFromDB()
elle a juste besoin d'un argument à un moment donné
public String getStringFromDB(int i)
return tonString[i];
Dans la valeur de retour, tu récupères le string associé.
Comme je dis plus haut, le plus difficile sera d'indiquer l'occurence via la valeur int en argument
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci encore choubaka :o)
En faite, ce qui serait l'idéale pour moi serait de retourner toute l'array et de pouvoir l'utiliser dans ma classe qui a apellé la classe DB, comment faire ça svp ?
A+ Pierre.
En faite, ce qui serait l'idéale pour moi serait de retourner toute l'array et de pouvoir l'utiliser dans ma classe qui a apellé la classe DB, comment faire ça svp ?
A+ Pierre.
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
18 févr. 2010 à 11:37
18 févr. 2010 à 11:37
faire appel à une méthode comme ceci
public String[] getStringFromDB()
public String[] getStringFromDB()
Salut choubaka,
Merci pour ton message !
Finalement je vais utiliser un ArrayList<> pour retourner mes données.....alors jai fait:
ArrayList <candidats> listret = DB.connection(filtre1);
for (int i=0; i<15; i++){
}
public class DB {
public static ArrayList<candidats> connection(String filtre) {
ArrayList<candidats> liste = new ArrayList<candidats>();
return liste;
Ma question, listret sera populer avec les données de l'arraylist 'candidats' de la class DB ?
Merci beaucoup ! Pierre.
Merci pour ton message !
Finalement je vais utiliser un ArrayList<> pour retourner mes données.....alors jai fait:
ArrayList <candidats> listret = DB.connection(filtre1);
for (int i=0; i<15; i++){
}
public class DB {
public static ArrayList<candidats> connection(String filtre) {
ArrayList<candidats> liste = new ArrayList<candidats>();
return liste;
Ma question, listret sera populer avec les données de l'arraylist 'candidats' de la class DB ?
Merci beaucoup ! Pierre.
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
23 févr. 2010 à 10:54
23 févr. 2010 à 10:54
bonjour
je ne comprends pas très bien ta question...
je ne comprends pas très bien ta question...
Si j'ai un arraylist populé dans ma class DB, au retour dans la class qui a appelé la class DB l'arraylist retourné peut-être utilisé directement ?
Si oui, comment svp ?
Merci beaucoup !
Pierre.
Si oui, comment svp ?
Merci beaucoup !
Pierre.
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
23 févr. 2010 à 13:25
23 févr. 2010 à 13:25
public class Interface{
private ArrayList listret;
private candidats currentCandidat;
// lorsque tu fais appel à la méthode statique, il te suffit de faire:
listret = DB.connection(filtre1);
Tu fais une itération dans listret afin de récupérer l'objet que tu veux:
for(int i=0; i<listret.size(); i++) {
currentCandidat = (candidats) listret.elementAt(i);
dans ce cas, tu extrais un par un un objet candidats.
Maintenant, tu peux manipuler ton ArrayList comme tu veux...
Un conseil, vérifie dans une condition If (isEmpty) si ton ArrayList n'est pas vide; ça évite des bugs.
private ArrayList listret;
private candidats currentCandidat;
// lorsque tu fais appel à la méthode statique, il te suffit de faire:
listret = DB.connection(filtre1);
Tu fais une itération dans listret afin de récupérer l'objet que tu veux:
for(int i=0; i<listret.size(); i++) {
currentCandidat = (candidats) listret.elementAt(i);
dans ce cas, tu extrais un par un un objet candidats.
Maintenant, tu peux manipuler ton ArrayList comme tu veux...
Un conseil, vérifie dans une condition If (isEmpty) si ton ArrayList n'est pas vide; ça évite des bugs.
Salut choubaka,
Merci beaucoup pour ton aide !
Alors, j'ai une autre question, j'ai un JFrame avec a JList(et un ListModel) où je veux afficher les candidats retournés dans le arraylist.
//LIST for Jframe
private JList lista;
private DefaultListModel listModel;
listModel = new DefaultListModel();
lista = new JList(listModel);
lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lista.setSelectedIndex(0);
lista.addListSelectionListener(this);
lista.setVisibleRowCount(15);
JScrollPane listScrollPane = new JScrollPane(lista);
filtre.getContentPane().add(lista);
filtre.getContentPane().add(listScrollPane);
Commet faire pour utiliser les occurences de l'arraylist dans le JList svp ?
Peux-je faire ça ?
ArrayList <candidats> listret = DB.connection(filtre1);
for (int i=0; i<listret.size(); i++){
listModel.addElement(((candidats)listret.elementAt(i)));
}
Le problème c'est que j'ai une erreur dans 'elementAt' ou il me dit ça:
The method element(int) is undefined for the type ArrayList<candidats>
Désolé je suis un débutant qui pose des questions très simples....
Merci beaucoup ! Pierre.
Merci beaucoup pour ton aide !
Alors, j'ai une autre question, j'ai un JFrame avec a JList(et un ListModel) où je veux afficher les candidats retournés dans le arraylist.
//LIST for Jframe
private JList lista;
private DefaultListModel listModel;
listModel = new DefaultListModel();
lista = new JList(listModel);
lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lista.setSelectedIndex(0);
lista.addListSelectionListener(this);
lista.setVisibleRowCount(15);
JScrollPane listScrollPane = new JScrollPane(lista);
filtre.getContentPane().add(lista);
filtre.getContentPane().add(listScrollPane);
Commet faire pour utiliser les occurences de l'arraylist dans le JList svp ?
Peux-je faire ça ?
ArrayList <candidats> listret = DB.connection(filtre1);
for (int i=0; i<listret.size(); i++){
listModel.addElement(((candidats)listret.elementAt(i)));
}
Le problème c'est que j'ai une erreur dans 'elementAt' ou il me dit ça:
The method element(int) is undefined for the type ArrayList<candidats>
Désolé je suis un débutant qui pose des questions très simples....
Merci beaucoup ! Pierre.
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
24 févr. 2010 à 10:44
24 févr. 2010 à 10:44
c'est une erreur de ma part
tu dois utiliser la méthode listret.get(i), qui te renvoie un objet.
listModel.addElement(((candidats)listret.get(i)));
maintenant cette méthode te renvoie l'objet candidats mais je ne sais pas ce qui sera affiché dans ta liste...
si tu dois afficher le nom (par exemple), il manque quelque chose. enfin je pense.
tu dois utiliser la méthode listret.get(i), qui te renvoie un objet.
listModel.addElement(((candidats)listret.get(i)));
maintenant cette méthode te renvoie l'objet candidats mais je ne sais pas ce qui sera affiché dans ta liste...
si tu dois afficher le nom (par exemple), il manque quelque chose. enfin je pense.
Merci beaucoup !!!
Par contre j'ai détecté un problème dans ma class DB où je vais lire les données.....
ArrayList<candidats> liste = new ArrayList<candidats>();
.....
candidats occur = null;
while (rs.next()){
String contact = rs.getString("PRENOM")
+ " " + rs.getString("NOM") + " " + rs.getString("mot_cles_1");
occur.nom = rs.getString("NOM");
occur.prenom = rs.getString("PRENOM");
occur.qualif1 = rs.getString("mot_cles_1");
System.out.println(occur);
int i = 0;
liste.add(i, occur);
i++;
System.out.println(contact);
}
Quand je vois le 'PRINTout' après éxecution du programme j'ai NULL pour le print de 'OCCUR' mais j'ai les données pour le print de 'CONTACT'......c'est à dire que je n'arrive pas encore à rajouter les candidats dans l'arraylist 'liste'.
Comment faire alors pour rajouter les occurences dans mon arraylist svp ?
Merci beaucoup !
Pierre.
Par contre j'ai détecté un problème dans ma class DB où je vais lire les données.....
ArrayList<candidats> liste = new ArrayList<candidats>();
.....
candidats occur = null;
while (rs.next()){
String contact = rs.getString("PRENOM")
+ " " + rs.getString("NOM") + " " + rs.getString("mot_cles_1");
occur.nom = rs.getString("NOM");
occur.prenom = rs.getString("PRENOM");
occur.qualif1 = rs.getString("mot_cles_1");
System.out.println(occur);
int i = 0;
liste.add(i, occur);
i++;
System.out.println(contact);
}
Quand je vois le 'PRINTout' après éxecution du programme j'ai NULL pour le print de 'OCCUR' mais j'ai les données pour le print de 'CONTACT'......c'est à dire que je n'arrive pas encore à rajouter les candidats dans l'arraylist 'liste'.
Comment faire alors pour rajouter les occurences dans mon arraylist svp ?
Merci beaucoup !
Pierre.
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
24 févr. 2010 à 11:30
24 févr. 2010 à 11:30
essaye ça
candidats occur = null;
String nom;
String prenom;
String motcle1;
String contact;
while (rs.next()){
nom = rs.getString("NOM");
prenom = rs.getString("PRENOM");
motcle1 = rs.getString("mot_cles_1");
contact = nom + " " + prenom + " " + motcle1;
occur.nom = nom;
occur.prenom = prenom;
occur.qualif1 = motcle1;
System.out.println(occur);
liste.add(rs.getRow(), occur);
System.out.println(contact);
}
candidats occur = null;
String nom;
String prenom;
String motcle1;
String contact;
while (rs.next()){
nom = rs.getString("NOM");
prenom = rs.getString("PRENOM");
motcle1 = rs.getString("mot_cles_1");
contact = nom + " " + prenom + " " + motcle1;
occur.nom = nom;
occur.prenom = prenom;
occur.qualif1 = motcle1;
System.out.println(occur);
liste.add(rs.getRow(), occur);
System.out.println(contact);
}
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
24 févr. 2010 à 11:32
24 févr. 2010 à 11:32
pour l'affichage d'occur, tu dois verifier si tu a bien surchargé la méthode toString();
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
2 mars 2010 à 21:14
2 mars 2010 à 21:14
et?
Salut choubaka,
Alors j'ai toujours un résultat different entre mes deux println:
Ici le println dans ma classe DB:
while (rs.next()){
nom = rs.getString("NOM");
prenom = rs.getString("PRENOM");
motcles1 = rs.getString("mot_cles_1");
occur.nom = nom;
occur.prenom = prenom;
occur.qualif1 = motcles1;
System.out.println(occur);
System.out.println(i); // index
i++;
liste.add(i, occur); // est-ce que c'est bon ça ?
Le résultat est bon, c'est à dire:
PIERRE BAUDRU COOLGEN
0
PATRICIA DE SOUZA COOLGEN
1
Ici le println dans ma classe recheureka2:
if (event.getSource() == PBfiltrer) {
String filtre1 = EFfiltre1.getText();
ArrayList <candidats> listret = DB.connection(filtre1);
System.out.println(listret.size()); // ici c'est le 2 dans le résultat
for (int i=0; i<listret.size(); i++){
String contact = listret.get(i).prenom
+ " " + listret.get(i).nom + " " + listret.get(i).qualif1;
listModel.addElement((listret.get(i)));
System.out.println(contact);
System.out.println(i); // ici c'est le 0 et le 2 dans le résultat
2
DE SOUZA PATRICIA COOLGEN
0
DE SOUZA PATRICIA COOLGEN
1
Bon je ne comprends pas encore porquoi j'ai deux occurences differentes quand je suis en train de lire dans la DB et au retour pour le deuxième println j'ai deux iccurences identiques ?
Merci beaucoup pour ton aide !! :o)
A+ Pierre.
Alors j'ai toujours un résultat different entre mes deux println:
Ici le println dans ma classe DB:
while (rs.next()){
nom = rs.getString("NOM");
prenom = rs.getString("PRENOM");
motcles1 = rs.getString("mot_cles_1");
occur.nom = nom;
occur.prenom = prenom;
occur.qualif1 = motcles1;
System.out.println(occur);
System.out.println(i); // index
i++;
liste.add(i, occur); // est-ce que c'est bon ça ?
Le résultat est bon, c'est à dire:
PIERRE BAUDRU COOLGEN
0
PATRICIA DE SOUZA COOLGEN
1
Ici le println dans ma classe recheureka2:
if (event.getSource() == PBfiltrer) {
String filtre1 = EFfiltre1.getText();
ArrayList <candidats> listret = DB.connection(filtre1);
System.out.println(listret.size()); // ici c'est le 2 dans le résultat
for (int i=0; i<listret.size(); i++){
String contact = listret.get(i).prenom
+ " " + listret.get(i).nom + " " + listret.get(i).qualif1;
listModel.addElement((listret.get(i)));
System.out.println(contact);
System.out.println(i); // ici c'est le 0 et le 2 dans le résultat
2
DE SOUZA PATRICIA COOLGEN
0
DE SOUZA PATRICIA COOLGEN
1
Bon je ne comprends pas encore porquoi j'ai deux occurences differentes quand je suis en train de lire dans la DB et au retour pour le deuxième println j'ai deux iccurences identiques ?
Merci beaucoup pour ton aide !! :o)
A+ Pierre.
choubaka
Messages postés
39424
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 avril 2025
2 104
3 mars 2010 à 10:43
3 mars 2010 à 10:43
c'est bizarre, en effet ...
essaye en déclarant ton String "contact" en dehors de ta méthode ou de ta condition..
essaye en déclarant ton String "contact" en dehors de ta méthode ou de ta condition..
Merci choubaka,
J'ai essayé mais j'ai le même résultat....
Comment faire pour un println des valeurs de l'arraylist dans ma classe DB svp (voir comm svp) ?
nom = rs.getString("NOM");
prenom = rs.getString("PRENOM");
motcles1 = rs.getString("mot_cles_1");
String contact = prenom + " " + nom + " " + motcles1;
occur.nom = nom;
occur.prenom = prenom;
occur.qualif1 = motcles1;
System.out.println(occur);
liste.add(i, occur);
System.out.println(liste.????); // ici on peut récupérer la valeur dans l'array ?
System.out.println(i);
i++;
J'ai essayé mais j'ai le même résultat....
Comment faire pour un println des valeurs de l'arraylist dans ma classe DB svp (voir comm svp) ?
nom = rs.getString("NOM");
prenom = rs.getString("PRENOM");
motcles1 = rs.getString("mot_cles_1");
String contact = prenom + " " + nom + " " + motcles1;
occur.nom = nom;
occur.prenom = prenom;
occur.qualif1 = motcles1;
System.out.println(occur);
liste.add(i, occur);
System.out.println(liste.????); // ici on peut récupérer la valeur dans l'array ?
System.out.println(i);
i++;