Bonjour à tous, voilà j'ai créer une applet qui permet de lire la hauteur d'eau d'un automate. J'ai réussi à dessiner une jauge représentant le niveau d'eau ça marche. J'aimerais pouvoir maintenant l'insérer dans un JPanel mais je ne sais pas du tout comment m'y prendre. J'ai lu pas mal de truc sur internet mais je n'ai pas trop compris, pouvais vous m'aider svp ??? Merci d'avance. Voici le code de l'applet qui marche :
et voici le code incomplet de la page que je veut réaliser :
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
76
77
78 import java.applet.*; import java.awt.*; import java.awt.event.*; import java.lang.*; import java.util.Locale; import java.beans.*; import javax.swing.*; import javax.swing.event.*; import com.schneiderautomation.factorycast.*; import com.schneiderautomation.factorycast.comm.StatusMessages; public class hauteureau extends Applet implements PropertyChangeListener { int valeur; CommBean comm=new CommBean(Locale.getDefault()); MonitorUInt monitor=new MonitorUInt(comm.getAdaptor()); public void init() { try { comm.connect("172.16.6.241",false); comm.start(); monitor.addPropertyChangeListener(this); monitor.setAddress("%MW24"); monitor.register(); } catch(Exception e) { System.out.println("Erreur : "+e.getMessage()); } } public void destroy() { try { comm.disconnect(); } catch(Exception e) { System.out.println("Erreur : "+e.getMessage()); } } public void propertyChange(PropertyChangeEvent evt) { String prop = evt.getPropertyName(); if( prop.equals( "values" ) ) { valeur=monitor.getValue(); repaint(); } } public void tracejauge(int haut,Graphics g) { haut=haut*250/1000; g.fill3DRect(31,250-haut,100,haut,false); } public void paint(Graphics g) { g.drawLine(30,0,30,251); g.drawLine(30,251,131,251); g.drawLine(131,251,131,0); g.setColor(Color.CYAN); tracejauge(valeur,g); } }
P.S : Ceci n'est qu'une applet test et les éléments dans l'applet final seront rangés grâce à un GridBagConstraints.
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99 import java.applet.*; import java.awt.*; import java.awt.event.*; import java.lang.*; import java.util.Locale; import java.beans.*; import javax.swing.*; import javax.swing.event.*; import com.schneiderautomation.factorycast.*; import com.schneiderautomation.factorycast.comm.StatusMessages; public class hauteureau2 extends JApplet { public hauteau hauteurdeleau=new hauteau(); public jauge jg=new jauge(); CommBean comm=new CommBean(Locale.getDefault()); JPanel panneau=new JPanel(); GridLayout tableau=new GridLayout(2,1); JLabel eau=new Label(); //On créera ici l'élément qui contiendra la jauge public void init() { try { comm.connect("172.16.6.241",false); comm.start(); } catch(Exception e) { System.out.println("Erreur : "+e.getMessage()); } this.add(panneau); panneau.setLayout(tableau); panneau.add(eau); //on insérera ici la jauge dans le panel } public void destroy() { try { comm.disconnect(); } catch(Exception e) { } } class hauteau implements PropertyChangeListener { int valeur; MonitorUInt monitor=new MonitorUInt (comm.getAdaptor()); public void init() { monitor.addPropertyChangeListener(this); monitor.setAddress("%MW24"); monitor.register(); } public void propertyChange( PropertyChangeEvent evt ) { String prop = evt.getPropertyName(); if( prop.equals( "values" ) ) { valeur=monitor.getValue(); eau.setText("hauteur :"+valeur); //on redessinera la jauge avec la nouvelle valeur ici } } } class jauge { public void tracejauge(int haut,Graphics g) { haut=haut*250/1000; g.fill3DRect(31,250-haut,100,haut,false); } public void paint(Graphics g) { g.drawLine(30,0,30,251); g.drawLine(30,251,131,251); g.drawLine(131,251,131,0); g.setColor(Color.CYAN); tracejauge(valeur,g); } } }
Partager