OVH Cloud OVH Cloud

image en fond

2 réponses
Avatar
aliena31
Bonjour.

Comment fait-on pour mettre une image en fond (en filigrane) dans une
fenêtre (frame) ?
Merci d'avance

aliena

2 réponses

Avatar
MacTotoche
aliena31 wrote:
Comment fait-on pour mettre une image en fond (en filigrane) dans une
fenêtre (frame) ?
Merci d'avance
Hello,

le moyen pourrait être de mettre dans la méthode paint() :

public void paint(Graphics g) {
g.drawImage(image1, 0, 0, this);

((Graphics2D)g).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
0.5f));
g.drawImage(image1, image1.getWidth(this)+2, 0, this);
}

http://examples.oreilly.com/jenut2/2nd_edition/
te donnera pas mal d'exemples pour des traitements sur des images, et
tellement d'autres choses aussi...

Un petit exemple qui fait ça :

import java.awt.*;

import javax.swing.*;

// compile : javac Filigrane.java
// run : java Filigrane

public class Filigrane extends JApplet {

public static void main(String[] args) {
System.setProperty("apple.awt.brushMetalLook", "true");
JFrame f = new JFrame("Filigrane");
f.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});

Filigrane applet = new Filigrane();
applet.init();
applet.start();

f.getContentPane().add("Center", applet);
f.setSize(500, 200);
f.show();
}

// Variables d'instance
Image image1;

public void init() {
super.init();
}

public void start() {
image1 = Toolkit.getDefaultToolkit().getImage("sample.jpg");

try {
MediaTracker mt = new MediaTracker(this);
mt.addImage(image1, 1);
mt.waitForID(1);
}
catch (Exception ex) { ex.printStackTrace();}
}

public void paint(Graphics g) {
g.drawImage(image1, 0, 0, this);

((Graphics2D)g).setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
0.5f));
g.drawImage(image1, image1.getWidth(this)+2, 0, this);
}
}

--
Olivier
This space for sale.

Avatar
Cedric Lefebvre
Le plus propre c'est JLayeredPane...

Cedric Lefebvre

Bonjour.

Comment fait-on pour mettre une image en fond (en filigrane) dans une
fenêtre (frame) ?
Merci d'avance

aliena