Bonjour,
Y a t'il la possibilité lorsqu'un composant quelconque sois passé à une méthode sous le type Object, de récupérer par le nom de la propriété sa valeur.
Merci
Bonjour,
Y a t'il la possibilité lorsqu'un composant quelconque sois passé à une méthode sous le type Object, de récupérer par le nom de la propriété sa valeur.
Merci
Bonjour,
En java tout dérive de Object . Les méthodes lié à Object sont vraiment minimale.
Je te conseil de typer ton objet ou de faire un cast afin d'avoir accés au méthodes ascenceurs ( getter et setter ) qui te permettront d'accéder au différentes propriété de ton objet.
cordialement
Edit : si tu nous donne plus d'informations tu pourra être aidé plus efficacement.![]()
les proprieté des composants a comparés
[/CODE]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 chkFields.addFieldCheck(txtEncoder.getClass(), "text"); chkFields.addFieldCheck(txtCrossDate.getClass(), "Text"); chkFields.addFieldCheck(txtCrossTime.getClass(), "Text"); chkFields.addFieldCheck(txtDescription.getClass(), "Text"); chkFields.addFieldCheck(txtOrganisateur.getClass(), "Text"); chkFields.addFieldCheck(txtDistance.getClass(), "Text"); chkFields.addFieldCheck(cboUnit.getClass(), "Text");
le module pour controler
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 package model; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collection; import javax.swing.event.ChangeListener; public class FieldsCheck extends KeyAdapter implements ActionListener { private static Collection<FieldsCheck> fchk; private Class<?> component; private String property; private Object oldValue; private ChangeListener changeListener; public FieldsCheck(){ fchk = new ArrayList<FieldsCheck>(); } public void addFieldCheck(Class<?> component, String property) { this.component = component; this.property = property; fchk.add(this); } protected Class<?> getComponent() { return component; } protected void setComponent(Class<?> component) { this.component = component; } protected String getProperty() { return property; } protected void setProperty(String property) { this.property = property; } protected ChangeListener getChangeListener() { return changeListener; } private void setChangeListener(ChangeListener changeListener) { this.changeListener = changeListener; } @Override public void keyPressed(KeyEvent e){ Field d; for (FieldsCheck c : fchk){ compare new value with old valeu System.out.println(c.oldValue); } } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub } }
Tu devrais trouver ton bonheur dans l'API de reflection ou l'API Beans.
Sinon tu as aussi Apache Commons Beans qui pourrait t'aider.
Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
Ceylon : Installation - Concepts de base - Typage - Appels et arguments
ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
Une solution vous convient ? N'oubliez pas le tag
Signature par pitipoisson
Bonjour
Je suppose que tu en a besoin ici pour comparer tes valeurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for (FieldsCheck c : fchk){ compare new value with old valeu System.out.println(c.oldValue); }
la classe FieldsCheck n'apparteint pas a java , tu as du donc l'ecrire.
Il te suffit de rajouter une méthode get sur l'attribut que tu souhaite accéder
et tu pourras ecrire c.getNewValue ou c.getValue a toi de voir .
Ton objet chkFields est une hashMap ? on a pas trop de visibiltié sur les autres classe ...
Au pire poste la classe FieldsCheck.java ca aidera forcément![]()
Partager