Salut tout le monde,
j'aimerai savoir si quelqu'un pouvait m'expliquer comment faire pour prendre les valeur de mes JLabel, et les passer à une autre page ?
merci
Salut tout le monde,
j'aimerai savoir si quelqu'un pouvait m'expliquer comment faire pour prendre les valeur de mes JLabel, et les passer à une autre page ?
merci
Grosso modo tu crées un bean (une classe contenant des attributs private et des accesseurs sur ce attributs)
correspondant aux différentes labels dont tu veux retenir la valeur. Dans ta première page tu as un bean du type précité, les accesseurs nécessaires sur ce bean (un getter, un setter).
A chaque changement sur un JLable il faudra répercuter ce changement dans ton bean au moyen du setter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class MonBean { private int a=0; //constructeur public MonBean(int a) { this.a = a; } //setter public void setA(int a) { this.a = a; } //getter public int getA() { return a; } }
Ta deuxième page contiendra elle aussi un bean du même type avec les accesseurs qui vont bien?
Et pour passer tes informations entre tes deux pages il suffit de jouer sur les accesseurs. Tu peux également passer ton bean en argument de ta deuxième page.
Mais le plus propre serait d'avoir une classe ne contenant pas d'éléments graphiques ayant pour rôle de faire transiter les informations. Pour celà renseigne toi sur l'architecture MVC qui tu ne pourras éviter si tu fais du swing
ha ouai quand meme... je pensai qu'on pouvait faire nettement plus simple pour passer un string a une autre classe non ?
donc MVC pas pour le moment car mon appli est vraiment petite.citation : l'architecture MVC est recommandée pour des " grosses " applications. Effectivement, le temps de travail de conception serait trop important pour une " petite " voire " moyenne " application.
DSi c'est sur une seule valeur tu peux toujours faire directement un getter ou un setter dessus.
genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public String getValeur() { return monLabel.getTExt(); } public void setValeur(String valeur) { if(autrelabel != null) { autreLabel.setText(valeur); } }
non mais en faite récupérer les valeur des JLabel et de les stocker dans une variable c'est bon ya pas de prob ! mais cest ensuite de les reprendre dans une autre page...
La méthode que je te donne permet d'accéder au valeurs de ton label depuis une autre page (bien sûr tu as spécifié ton JLabel en tant que private).
Grosso modo ce que je te décris c'est le mécanismes d'accesseurs qui permet d'accéder et modifier des données depuis un classe extérieure, à toi ensuite de réfléchir un peu pour savoir t'en dépatouiller.
Et pour ça un controleur est plus qu'utile, même si il ne respecte pas tout à fait l'archi mvc. Grosso modo tu crées un classe non graphique dont tu auras la référence dans tes deux classes graphiques.
Cette classe non graphique aura pour but de faire transiter l'information entre tes deux classes. Elle aura donc un méthode getValeur qui ira récupérer l'info dans la classe 1. Cette méthode pourra être appelée depuis la classe 2 pour obtenir la valeur de la string que tu cherches à récupérer depuis la classe 1.
hum ouai je vois... mais cest quand meme un peu flou... y'aurait-il la possibilité de voir un exemple concret ?
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class Panel1 extends JPanel { private JLabel j; private MainClass mainClass; public Panel1 (MainClass mainClass) { this.mainClass = mainClass; ... } public String getValue() { return j.getText(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class Panel2 extends JPanel { private JLabel j; public Panel2 (MainClass mainClass) { this.mainClass = mainClass; j = new JLabel(mainClass.getPanel1Value()); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class MainClass { private Panel1 panel1; private Panel2 panel2; public MainClass() { panel1 = new Panel1(this); panel2 = new Panel2(this); } public String getPanel1Value() { return panel1.getValue(); } }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager