Récupérer une valeur d'un constructeur dans une métode

Résolu/Fermé
mikmuk Messages postés 156 Date d'inscription dimanche 22 août 2010 Statut Membre Dernière intervention 17 janvier 2013 - Modifié par mikmuk le 17/01/2013 à 02:10
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 17 janv. 2013 à 14:19
Bonjour,

Je possède un

public Main() { 
[...] 
JTextField nick = new JTextField(20); 
[...]
}


et j'ai besoin de récupérer la valeur entrée par l'utilisateur lors de l'execution du programme, dans une methode.

Voici ce que j'ai fait:

private void connectDB (ActionEvent e) { 
Main getMain = new Main(); 
  getMain.Main();  
}


Le problème est que le Main n'est pas une méthode donc impossible de récupérer la valeur de cette manière.

Auriez-vous des informations ou un lien qui pourrait me documenter à ce sujet.

Merci.

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
17 janv. 2013 à 14:19
C'est très difficile de comprendre ce que tu fais exactement, car on n'a que deux morceaux de codes pas très explicite. Il est à mon avis une très mauvaise idée d'appeler une classe "Main" si elle contient autre chose que la méthode main, de même qu'appeler un objet "get" ou "set" comme ton "getMain" ce qui fait penser aux méthodes d'accès, sans parler de ce "getMain.Main()", tu utilises le constructeur sur un objet comme s'il s'agissait d'une méthode, c'est très bizarre.

Si j'ai bien compris ce que tu veux, tu voudrais récupérer la valeur de "nick" dans ta seconde méthode, je te propose ceci (je garde les même noms pour ne pas te mélanger, mais il faudrait les changer pour être plus compréhensibles) :

private final JTextField nick;

public Main()
{ 
    // ...
    nick = new JTextField(20); 
    // ...
}

public String getNick()
{
    return nick.getText();
}

private void connectDB (ActionEvent e) 
{ 
    Main getMain = new Main();
    String nick getMain.getNick();  
}
0