Es qu'il existe une fonction qui permet de redessiner un élément graphique autre que repaint() qui ne marche pas !
En fait, j'ai un tableau qui ne sait mets pas à jour,
un JXTable dans lequel il y a un calcul !
Si vous avez un idée ?
Es qu'il existe une fonction qui permet de redessiner un élément graphique autre que repaint() qui ne marche pas !
En fait, j'ai un tableau qui ne sait mets pas à jour,
un JXTable dans lequel il y a un calcul !
Si vous avez un idée ?
Salut,
j'ai aussi eu des problèmes avec repaint, la seule solution que j'ai trouvé (je ne sais d'ailleurs toujours pas pourquoi ça ne marchait pas) c'est de rajouter un setVisible(true) après mon repaint.
J'espère que ça va t'aider, ++
Un petit "s'il vous plaît" ça ne mange pas de pain...Envoyé par fabred
![]()
Tu peux aussi chercher par toi même plutot que d'attendre que quelqu'un ai la gentillesse de répondre à ton post si peu chaleureux...
Utilise revalidate![]()
Dsl, mais ca n'ont plus marche pas !
Merci de ton aide !
S'il vous plait, ........![]()
Salut,
Ta question n'est guère précise, peut-être qu'avec un bout de code nous comprenions mieux ?![]()
Salut,
repaint() fonctionne très bien !Envoyé par fabred
Donc soit tu l'utilises mal soit ton code est buggé...
Bref un bout de code et un descriptif plus détaillé seraient utiles...
a++
J'ai refait le truc avec un JXTextField, pour que ca soit plus simple a comprendre !
Voici l'observable
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 public class Hypothese extends Observable{ /** * Nom de l'exploitant */ private String nom; /** * Prenom de l'exploitant */ private String prenom; /** * Constructeur par defaut */ public Hypothese() { super(); addObserver(new PaneDossier(null,null)); this.nom = null; this.prenom = null; } public void setNom(String nom) { this.nom = nom; setChanged(); notifyObservers(); } /** * @param prenom the prenom to set */ public void setPrenom(String prenom) { this.prenom = prenom; setChanged(); notifyObservers(); } }
et l'observer =>
Dans le TextField texte, le nom + le prenom n'appairaisse pas ! !
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 public class PaneDossier extends JPanel implements Observer { /** * */ private JTextField texte; /** * Constructeur par arguments * @param hypothese */ public PaneDossier(Dossier dossier, Hypothese hypothese) { super(); this.hypothese = hypothese; this.dossier = dossier; add(getTexte()); this.remplirChamps(); } public void update(Observable o, Object arg) { setTexte(hypothese.getNom()+hypothese.getPrenom()); this.repaint(); } public void setTexte(String texte) { this.texte.setText(texte); } public JTextField getTexte() { if (texte==null){ texte= new JTextField(); texte.addKeyListener( new KeyAdapter() { public void keyReleased(KeyEvent e) { getHypothese().setTexte(texte.getText()); } }); } return texte; } }
Je crois qu'il va falloir que tu debug ton propre code.
Pour cela, il faut que tu ajoute des System.out.println à certains endroit pour savoir les lignes de codes qui sont appelées et celles qui ne le sont pas.
Apres, tu devrais pouvoir comprendre la cause de ton problème.
Merci, mais je l'ai deja fait cà !
En fait, il passe dans le update, met la chaine (nom+prenom) dans le TExtField
puis revient dans l'observable !
Mais en fait c comme s'il n'été pas passé dans le update !
Tu ajoutes comme observer un PaneDossier vide qui n'est même pas affiché...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public Hypothese() { super(); addObserver(new PaneDossier(null,null)); this.nom = null; this.prenom = null; }
Bref tu a 2 PaneDossier :
- L'un est affiché mais n'est pas enregistré auprès de l'oservable
- L'autre n'est pas affiché, mais est enregistré auprès de l'observable...
Evites d'utiliser les constructeurs pour passer des références, surtout lorsqu'il faut une référence à double sens comme dans ce cas...
a++
PS : Et plutôt que d'utiliser des Observer/Observable, tu devrais plutôt utiliser le principe des Listeners : Comment créer son propre Listener ?
ouais c bon, j'ai rajouté l'observable dans l'observer !!
Merci à tous pour votre aide !
![]()
Tu m'as pas l'air d'avoir compris le truc...Envoyé par fabred
![]()
Apprends la programmation objet en Java avant de te lancer dans du Swing... Sinon, des erreurs tordues de la sorte, tu vas nous en poser un paquet...
EDIT : et si tu pouvais éviter les doubles posts aussi![]()
Ici on ne fait pas de concours du nombre de réponses...
Partager