[Java] Comment faire retourner une string ?
pbaudru
-
choubaka Messages postés 39986 Date d'inscription Statut Modérateur Dernière intervention -
choubaka Messages postés 39986 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis débutant sous JAVA.
J'ai crée 2 class, une avec un JFrame (interface) et une autre avec la connection à la DB (DBcon).
La class interface apelle la class DBcon pour obtenir les données et les affichées dans un JList.
Dans la class où je vais lire les données dans la DB j'ai une String [] que je rempli avec les données trouvées dans la DB (max 15 occurences). A la fin de cette class je fais un RETURN de la String avec les données.
Ma question, comment pouvoir utiliser dans la class interface les données lus dans la class DBcon, ou encore, comment faire passer les données dans la String [] populée dans la class DBcon vers la class interface svp ?
Merci beaucoup !
Pierre.
Je suis débutant sous JAVA.
J'ai crée 2 class, une avec un JFrame (interface) et une autre avec la connection à la DB (DBcon).
La class interface apelle la class DBcon pour obtenir les données et les affichées dans un JList.
Dans la class où je vais lire les données dans la DB j'ai une String [] que je rempli avec les données trouvées dans la DB (max 15 occurences). A la fin de cette class je fais un RETURN de la String avec les données.
Ma question, comment pouvoir utiliser dans la class interface les données lus dans la class DBcon, ou encore, comment faire passer les données dans la String [] populée dans la class DBcon vers la class interface svp ?
Merci beaucoup !
Pierre.
A voir également:
- [Java] Comment faire retourner une string ?
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Retourner ecran pc - Guide
- Comment retourner une video - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo
19 réponses
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
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.
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.
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.
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.
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.
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.
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);
}
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.
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++;