Dessiner sur un Component
Bonjour à tous,
J'aimerai savoir comment faire pour dessiner sur un component, en fait j'y arrive mais mon dessin ne reste pas il disparait automatiquement et je ne vois pas pourquoi.
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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsEnvironment;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.swing.JFrame;
public class test extends JFrame {
// Dimensions d'écran
private GraphicsEnvironment graphicsEnvironment = null;
// Component video
private Component video = null;
// Player
private Player player = null;
private MediaLocator ml = null;
public test() {
super("Test");
graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
setBounds(graphicsEnvironment.getMaximumWindowBounds());
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
closePlayer();
System.exit(0);
}
});
init();
}
public void init()
{
//récupération de mon player
getPlayer();
//ajout de mon player à ma frame
add(video);
video.setBounds(graphicsEnvironment.getMaximumWindowBounds());
//ajout d'un événement souris pour le dessin
video.addMouseListener(new Click());
// actualisation de ma fenêtre
repaint();
}
//Methode dessinant une ligne en diagonal
public void superPose()
{
Graphics g = player.getVisualComponent().getGraphics();
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.green);
g2.drawLine(0, 0, 300, 300);
}
//Methode utilisé pour la récupération de mon player
public void getPlayer() {
ml = new MediaLocator("vfw://0");
try {
player = Manager.createRealizedPlayer(ml);
player.start();
video = player.getVisualComponent();
} catch (Exception e) {
e.printStackTrace();
}
}
//Méthode utilisé pour fermer mon player
public void closePlayer() {
player.close();
player.deallocate();
}
public static void main(String args[]) {
new test();
}
//Clazs événement souris(dessine ma ligne sur un simple click)
public class Click implements MouseListener {
public void mouseClicked(MouseEvent arg0) {
superPose();
}
public void mouseEntered(MouseEvent arg0) {}
public void mouseExited(MouseEvent arg0) {}
public void mousePressed(MouseEvent arg0) {}
public void mouseReleased(MouseEvent arg0) {}
}
} |
MERCI....
Essayons de regarder ailleur
Bonjour tout le monde,
C'est encore moi n'ayant toujours pas trouvé ma solution je me demandais s'il n'y avait pas un moyen de contourner mon problème je m'explique, je m'acharne à essayer de dessiner sur un composant AWT et je n'y arrive pas, ne serait il pas possible de superposer un autre objet sur celui-ci si oui quelqu'un pourrait-il m'orienter.
A autre chose est ce qu'il existe autre chose que JMF pour faire de d'acquisition vidéo?
MERCI...