Bonjour, j'ai un problème de listener dans une partie de mon code.
J'affiche une vidéo dans un EmbeddedMediaPlayerComponent qui se trouve sur une JFrame et je n'arrive pas créer un événement lors du clic sur celui ci. (Pourtant l'événement fonctionne bien avec la JFrame seul).
J'ai essayé avec une GlassPane sans succès.
Voici mon bout de code :
Merci d'avance
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 import java.awt.MouseInfo; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import com.sun.jna.Native; import uk.co.caprica.vlcj.binding.LibVlc; import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent; import uk.co.caprica.vlcj.runtime.RuntimeUtil; import com.sun.jna.NativeLibrary; import javax.swing.JFrame; public class IP_cam extends JFrame { public EmbeddedMediaPlayerComponent mediaPlayerComponent; private int posX; // Position X de la souris au clic private int posY; // Position Y de la souris au clic public static IP_cam cam; public String address; public IP_cam (){ setLocation(MouseInfo.getPointerInfo().getLocation().x, MouseInfo.getPointerInfo().getLocation().y); setSize(384, 288); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setUndecorated(true); setName("IP_cam"); addMouseListener(new MouseAdapter() { @Override // On récupère les coordonnées de la souris public void mousePressed(MouseEvent e) { posX = e.getX(); posY = e.getY(); System.out.println("clic"); } }); addMouseMotionListener(new MouseMotionAdapter(){ @Override // A chaque déplacement on recalcul le positionnement de la fenetre public void mouseDragged(MouseEvent e){ int depX = e.getX() - posX; int depY = e.getY() - posY; cam.setLocation(getX()+depX, getY()+depY); System.out.println("move"); } }); } public void IP_camera(String _address) { address = _address; java.awt.EventQueue.invokeLater(new Runnable(){ public void run(){ cam = new IP_cam(); cam.setVisible(true); NativeLibrary.addSearchPath( RuntimeUtil.getLibVlcLibraryName(), "c:/program files/videolan/vlc"); Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class); mediaPlayerComponent = new EmbeddedMediaPlayerComponent(); cam.setContentPane(mediaPlayerComponent); mediaPlayerComponent.getMediaPlayer().playMedia(address); }; }); } }
Partager