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;
je n'ai plus qu'à ajouer une image à mon JPanel de la manière suivante:
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; } }
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 :-)
Partager