Bonjour j'ai ecris un composant qui représente un interrupteur. Le graphisme est simple, le composant est rouge si l'interrupteur est fermer et vert si ouvert. Pour cela j'utilise un booleen qui represente l'etat de l'interrupteur et a chaque changement d'etat, un evenement PropertyChangedEvent est lancé.
Le problee survient quand je veux mettre le JavaBean dans la BeanBox.
Voici ce qu'on me dis:
et voila le code :
J'ai mis une balise au niveau du probleme dans le code. Si quelqu'un sait me dire pourquoi cela fonctionne pas, ca m'aiderai. Merci beaucoup.
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 package exam; import java.awt.*; import java.awt.event.*; import java.beans.* ; // pour PropertyChangeSupport import java.util.*; public class Interrupteur extends Button { private boolean estOuvert; private PropertyChangeSupport pcs; public Interrupteur() { estOuvert = false; pcs = new PropertyChangeSupport(this) ; // L'erreur est du a ceci je pense. /*ActionListener obv = new ActionListener() { public void actionPerformed(ActionEvent e) { setInterrupteur(!estOuvert); } };*/ // this.addActionListener(obv); repaint(); } void setInterrupteur(boolean newEtat) { boolean old = estOuvert; estOuvert = newEtat; pcs.firePropertyChange("Etat", old, newEtat) ; repaint(); } boolean isInterrupteur() { return estOuvert; } public void paint(Graphics g) { Dimension d = new Dimension(this.getSize()) ; if(estOuvert == true) g.setColor(Color.GREEN); else g.setColor(Color.RED); g.fillOval(0,0,50,50); } public Dimension getPreferredSize(){ return new Dimension(50, 50) ; } // ajouter un observateur de changement de propriété public void addPropertyChangeListener(PropertyChangeListener l){ pcs.addPropertyChangeListener(l) ; } // supprimer un observateur de changement de propriété public void removePropertyChangeListener(PropertyChangeListener l){ pcs.removePropertyChangeListener(l) ; } }
[Modéré par Didier]
Ajout de tag dans le titre
Lire les règles du forum : Règles du forum Java
Partager