OVH Cloud OVH Cloud

[acces au pointeur mere d'un composant]

7 réponses
Avatar
Manu
bonjour,
impossible de recuperer le pointeur de ma JList...
je m'explique..., je suis oblige d'indiquer le nom de ma variable
"majlist" pour pouvoir en faire un "getSelectedIndex()"...
n'y a t'il pas un moyen plus generique pour acceder a cette variable, du
style "getParent().getParent().getSelectedIndex()", ou d'utiliser un
classe qui elle creerait une instance de mon"new ListSelectionListener()" ?

JList majlist = new JList();
majlist.setListData(new String[]{"c'est","un","test"});
majlist.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()) {
System.out.println("on change : " +
majlist.getSelectedIndex() );
}
}
}
);

7 réponses

Avatar
Gaetan Zoritchak
Manu wrote:
bonjour,
impossible de recuperer le pointeur de ma JList...
je m'explique..., je suis oblige d'indiquer le nom de ma variable
"majlist" pour pouvoir en faire un "getSelectedIndex()"...
n'y a t'il pas un moyen plus generique pour acceder a cette variable, du
style "getParent().getParent().getSelectedIndex()", ou d'utiliser un
classe qui elle creerait une instance de mon"new ListSelectionListener()" ?

JList majlist = new JList();
majlist.setListData(new String[]{"c'est","un","test"});
majlist.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()) {
System.out.println("on change : " +
majlist.getSelectedIndex() );
}
}
}
);
Je ne suis pas sûr de bien comprendre ta question mais tu peux récupérer

une référence sur ta JList depuis ton event en appelant e.getSource().

--
Gaetan Zoritchak
Gestion de bug en mode ASP sous java
http://eap.bug-sweeper.fr

Avatar
Manu

JList majlist = new JList();
majlist.setListData(new String[]{"c'est","un","test"});
majlist.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()) {
System.out.println("on change : " +
majlist.getSelectedIndex() );
}
}
}
);


Je ne suis pas sûr de bien comprendre ta question mais tu peux récupérer
une référence sur ta JList depuis ton event en appelant e.getSource().

comment faire alors pour remplacer : majlist.getSelectedIndex();

par un truc du genre : "e.getSource().getSelectedIndex()" ?

manu


Avatar
Isammoc
Je ne suis pas sûr de bien comprendre ta question mais tu peux
récupérer une référence sur ta JList depuis ton event en appelant
e.getSource().

comment faire alors pour remplacer : majlist.getSelectedIndex();

par un truc du genre : "e.getSource().getSelectedIndex()" ?


C'est l'idée....

manu


--
Isammoc


Avatar
Black Myst
Manu wrote:

JList majlist = new JList();
majlist.setListData(new String[]{"c'est","un","test"});
majlist.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()) {
System.out.println("on change : " +
majlist.getSelectedIndex() );
}
}
}
);



Je ne suis pas sûr de bien comprendre ta question mais tu peux
récupérer une référence sur ta JList depuis ton event en appelant
e.getSource().

comment faire alors pour remplacer : majlist.getSelectedIndex();

par un truc du genre : "e.getSource().getSelectedIndex()" ?


((JList)e.getSource());getSelectedIndex() ?


manu




Avatar
Manu
Manu wrote:


JList majlist = new JList();
majlist.setListData(new String[]{"c'est","un","test"});
majlist.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()) {
System.out.println("on change : " +
majlist.getSelectedIndex() );
}
}
}
);




Je ne suis pas sûr de bien comprendre ta question mais tu peux
récupérer une référence sur ta JList depuis ton event en appelant
e.getSource().

comment faire alors pour remplacer : majlist.getSelectedIndex();

par un truc du genre : "e.getSource().getSelectedIndex()" ?



((JList)e.getSource());getSelectedIndex() ?
effectivement... j'y etais presque... maintenant je comprend mieux...

j'aurais du voir : "public Object getSource()"
c'est toujours la meme chose quand on fait la premiere fois un prog...
bref petit a petit je m'habitue a java.




manu






Avatar
JB

Manu wrote:


JList majlist = new JList();
majlist.setListData(new String[]{"c'est","un","test"});
majlist.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()) {
System.out.println("on change : " +
majlist.getSelectedIndex() );
}
}
}
);





Je ne suis pas sûr de bien comprendre ta question mais tu peux
récupérer une référence sur ta JList depuis ton event en appelant
e.getSource().

comment faire alors pour remplacer : majlist.getSelectedIndex();

par un truc du genre : "e.getSource().getSelectedIndex()" ?




((JList)e.getSource());getSelectedIndex() ?


effectivement... j'y etais presque... maintenant je comprend mieux...
j'aurais du voir : "public Object getSource()"
c'est toujours la meme chose quand on fait la premiere fois un prog...
bref petit a petit je m'habitue a java.




manu
Je sais pas si j'ai bien compris l'idée originale mais



ClasseEnglobante.this.majlist.getSelectedIndex() ne fonctionnerait-il
pas en ajoutant un champ privé dans la classe Englobante ?

JB





Avatar
Kupee
JB wrote:


Manu wrote:


JList majlist = new JList();
majlist.setListData(new String[]{"c'est","un","test"});
majlist.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if(e.getValueIsAdjusting()) {
System.out.println("on change : " +
majlist.getSelectedIndex() );
}
}
}
);






Je ne suis pas sûr de bien comprendre ta question mais tu peux
récupérer une référence sur ta JList depuis ton event en appelant
e.getSource().

comment faire alors pour remplacer : majlist.getSelectedIndex();

par un truc du genre : "e.getSource().getSelectedIndex()" ?





((JList)e.getSource());getSelectedIndex() ?



effectivement... j'y etais presque... maintenant je comprend mieux...
j'aurais du voir : "public Object getSource()"
c'est toujours la meme chose quand on fait la premiere fois un prog...
bref petit a petit je m'habitue a java.




manu




Je sais pas si j'ai bien compris l'idée originale mais
ClasseEnglobante.this.majlist.getSelectedIndex() ne fonctionnerait-il
pas en ajoutant un champ privé dans la classe Englobante ?


C'est encore plus lourd, a ce moment sa solution fonctionne (encore
qu'il faut je pense que sa JList soit final)
L'autre solution est de la passer au listener dans le constructeur et la
mettre dans un champ du listener. mais c'est un peu compliqué aussi