bonjour,

je dispose d'une image en fond de JFrame(dans un JPanel) voici la classe qui me permet de créer une image elle hérite de JComponent;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
import javax.swing.*; 
import java.awt.*; 
import java.awt.image.*; 
 
public class JPanelImageBg extends JComponent
{
 
		private BufferedImage bufferedImage; 
 
 
	JPanelImageBg( String fileName)
	{
		this.bufferedImage = this.toBufferedImage(Toolkit.getDefaultToolkit().getImage(fileName));
 
	} 
 
	public void paintComponent(Graphics g)
	{	
				g.setColor(this.getBackground());
				g.fillRect(0,0,getWidth(), getHeight() );
				g.drawImage(bufferedImage,(getWidth()-bufferedImage.getWidth())/2,(getHeight()-bufferedImage.getHeight())/2,null);
	}
 
 
	private BufferedImage toBufferedImage(Image image)
	{	image = new ImageIcon(image).getImage(); 
 
		BufferedImage bufferedImage = new BufferedImage( image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB); 
		Graphics g = bufferedImage.createGraphics(); 
 
		g.setColor(Color.black); 
		g.fillRect(0, 0, image.getWidth(null), 
		image.getHeight(null)); 
		g.drawImage(image, 0, 0, null); 
		g.dispose(); 
		return bufferedImage; 
	}
 
}
je n'ai plus qu'à ajouer une image à mon JPanel de la manière suivante:

JPanelImageBg jpim= new JPanelImageBg("image.jpg");
JPanel image = new JPanel(new BorderLayout());
image.add(jpim,BorderLayout.CENTER);

-> ok1 problème

mais maintennat si je veux disposer sur cette image des icones ou des JButton, enfin, d'autres composants graphiques comment faire?

j'avai penser ajouter mes autres composants :
image.add(composants ou JPanel qui contient des composants,BorderLayout.CENTER)
mais bien sur l'image n'est plus visible car j'ajoute par dessus un autre JPanel qui l'écrase

Bref, tout en voyant l'image j'aimerais pouvoir utiliser mes JButton qui sont dessus.... je sais que cela est faisable sur une JFrame(en mettant l'image dans le contentPane et en ajoutant des JPanel comme on veut par dessus mais j'ai absolument besoin de le faire sur un JPanel car ce JPanel se trouve dans un JTabbedPane...
Merci :-)