Problème MouseListener JFrame
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 :
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
| 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);
};
});
}
} |
Merci d'avance