salut,
je cherche comment dessiner dans une awt.Component.
merci d'avance.
Version imprimable
salut,
je cherche comment dessiner dans une awt.Component.
merci d'avance.
a ton jframe tu fait un :
jframe.add(panel);
et au panel tu fait des add des composants
panel.add(composant);
si ce n'est pas ca alors tu fait une class extend composant et tu redefinir la methode paint
salut,
j'ai redéfinit la méthode paint mais ca marche pas voila le code.
Code:
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 package SuivieDeMouvement; import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.*; import java.awt.*; public class Composant extends Component implements MouseListener { Graphics g; int x1; int y1; int x2; int y2; boolean presse= false; boolean passe = false; boolean passe2 = true; private int currentX; private int currentY; public Composant () { addMouseListener(this); addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent me) { currentX = me.getX(); currentY = me.getY(); repaint(g); } public void mouseMoved(MouseEvent me) { currentX = me.getX(); currentY = me.getY(); repaint(g); }}); } public void move() {} public void paint(Graphics g) { if (presse) { g.setColor(Color.red); if (x1 < currentX) { g.drawRect(x1, y1, currentX - x1, currentY - y1); } else if (x1 > currentX) g.drawRect(currentX, currentY, x1 - currentX, y1 - currentY); else if (y1 < currentY) g.drawRect(currentX, currentY - y1, x1, y1); else g.drawRect(currentX, currentY, x1 - currentX, y1 - currentY); } } public void mouseEntered(MouseEvent me) {} public void mouseExited(MouseEvent me) {} public void mouseClicked(MouseEvent me) {} public void mouseReleased(MouseEvent me) { presse = false; } public void mousePressed(MouseEvent me) { presse = true; x1 = currentX; y1 = currentY; System.out.println(x1); } }
salut,
ca veut dire quoi "ca marche pas " ?
rentres tu dans ta methode paint() de component ?
es tu sur que ton composant est bien inséré dans ta Frame ? que sa taille est suffisante pour qu'il apparaisse ?
aussi vérifie les coordonnées des points que tu affiches... ca se trouve tu dessines en (100,500) alors que ta fenetre est de la taille (50,50) donc forcement ton paint ne se verra pas...
salut,
j'utilise ce code pour sélectionner des objets dans une vidéo lit avec jmf je récupère le visuelcomponent du player dans une instance de cette classe la vidéo apparait bien ca veut dire que l'instance est bien installé dans la fenetre mais le rectangle n'apparait pas quand je sélectionne avec la souris ca veut dire que le paint() ne fonctionne pas bien.
bon peut être que c'est à cause d'une autre chose?
ok, donc ton composant doit etre affiché au dessus de ta vidéo...
et es tu sur de passer dans ton paint ? si tu met System.out.println("paint !!!") dans ta méthode ?
ensuite es tu sur que ton rectangle est bien dessiné sur ta vidéo ?
comment ton composant est t'il géré par rapport à ton panel contenant la vidéo ?