Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

modifier une image ...

1 réponse
Avatar
Arnaud
hello !

encore un problème !

toujours dans mon problème de fenêtre transparente (voir précédents posts),
je voudrais modifier ma capture d'écran en off-screen et la réafficher mais
je n'y arrive pas :

1) je fais une capture d'écran que j'insère comme image de fond d'un JLabel

2) quand je déplace la fenêtre, je capture la nouvelle image de fond
d'écran, je la modifie et je la réaffiche comme fond de mon JLabel, mais là
ça coince :

//capture
public void capture() {
// capture tout l'écran
try {
Robot r = new Robot();
Rectangle rect = new Rectangle(0,0,d.width,d.height);
Image img = r.createScreenCapture(rect);
}
catch(AWTException awe) {
System.out.println("robot excepton occurred");
}

// crée une image offscreen (double buffer) de la dimension de la fenêtre
si n'existe pas
if (tim == null) {
Image tim = createImage(getWidth(),getHeight());
Graphics tig = tim.getGraphics();
}

// remplit ce buffer de l'image de l'écran capturée (calcule la partie qui
correspond à la fenêtre)
tig.drawImage(img, 0, 0, getWidth(), getHeight(), getX(), getY(),
getX() + getWidth(), getY() + getHeight(), null);

// dessine le calque grisé
tig.setColor(new Color(0,0,0,128));
tig.fillRoundRect(0,0,getWidth(),getHeight(),100,120);
}

Jusque là, OK : comment faire pour remettre cette image dans mon JLabel du
genre JLabel.setIcon((Icon) tim); mais ça marche pas, ça bloque à la
compilation.
J'ai du louper une étape du double buffering.

merci

--
Arnaud

1 réponse

Avatar
Arnaud
OK, pb résolu

--
Arnaud