Rendre JFrame "invisible" sans utiliser setVisible ou setSize
Bonjour tout le monde,
Je n'ai pas l'habitude de poster sur un forum parce que je trouve en général toujours mes réponses aux problèmes (après diverses recherches).
Là, j'avoue que je suis pas mal bloquée...
Je suis étudiante en Informatique et je développe une Loupe en Java.
Je sais qu'il existe différentes manières de le faire. La mienne est qu'il y a une fenêtre qui se déplace par rapport à la souris. (cette partie est ok)
De plus, lorsque l'on se déplace est affiché l'image qui est derrière la JFrame.
C'est sur ce point que je bloque.
Lorsque je fais une capture d'écran à l'endroit où se trouve la JFrame, je suis obligée de faire un setVisible(false) cependant cela scintille et rien ne fonctionne.
Par contre, lorsque je ne fais pas de setVisible et que je capture une partie de l'écran hors de la JFrame, cela marche..
Ma classe hérite d'un JFrame et implémente l'interface Runnable.
Voici un bout de mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public void run()
{
while (true)
{
try
{
repaint();
// Rafraîchissement toutes les 5 millisecondes
Thread.sleep (5);
}
catch (InterruptedException exception) {}
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
public void paint(Graphics g)
{
if(buffer == null) {
image = createImage(width,height);
buffer = image.getGraphics();
}
... // Bout de code effacé
Rectangle rectangle = new Rectangle(...);
//setVisible(false);
img = robot.createScreenCapture (rectangle);
//setVisible(true);
...
} |
En bref, comment faire pour capturer une image qui se situe en dessous d'une JFrame?
Merci par avance pour votre aide.
Cordialement