Faire un background avec une image et ajouter des images dessus
Résolu
drakahon
Messages postés
9
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
J'ai cherché à voir comment faire une background avec une image dans un JPanel, en fin de compte, j'ai vu qu'il fallait faire de la même façon que lorsque j'ajoute des images dans ce JPanel, ici j'utilise g.drawImage(). Le probleme, c'est que les images que j'ajoute ensuite ne sont pas visible sur ce background. J'ai essayé d'utiliser setOpaque(false) sur le background mais rien y fait...
Au fait, je travail sous netbeans.
Voici ce que j'ai fais :
un bouton qui permet d'ajouter le background à mon JPanel que j'ai nommé : jRoomPanel
et voici ImagePanel3 :
Voilà, est ce que vous avez une idée ?
Merci.
J'ai cherché à voir comment faire une background avec une image dans un JPanel, en fin de compte, j'ai vu qu'il fallait faire de la même façon que lorsque j'ajoute des images dans ce JPanel, ici j'utilise g.drawImage(). Le probleme, c'est que les images que j'ajoute ensuite ne sont pas visible sur ce background. J'ai essayé d'utiliser setOpaque(false) sur le background mais rien y fait...
Au fait, je travail sous netbeans.
Voici ce que j'ai fais :
un bouton qui permet d'ajouter le background à mon JPanel que j'ai nommé : jRoomPanel
private void jBackgroundButtonActionPerformed(java.awt.event.ActionEvent evt) { if(jRoomBackgroundComboSelect==1)//on a selectionné une image dan le ComboBox { ImagePanel3 imgBack=new ImagePanel3(pathBackground); imgBack.setOpaque(false); jRoomPanel.add(imgBack); jRoomPanel.repaint(); } }
et voici ImagePanel3 :
public class ImagePanel3 extends JPanel { private final Image imgBack; public ImagePanel3(String fileName) { imgBack = new ImageIcon(fileName).getImage(); setSize(imgBack.getWidth(this),imgBack.getHeight(this)); } public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(imgBack, 0, 0, getWidth(), getHeight(), null); } }
Voilà, est ce que vous avez une idée ?
Merci.
A voir également:
- Faire un background avec une image et ajouter des images dessus
- Des images - Guide
- Image iso - Guide
- Légender une image - Guide
- Reduire taille image - Guide
- Acronis true image - Télécharger - Sauvegarde
2 réponses
Je ne vois pas où est le problème, voici un main qui utilise trois ImagePanel3, le premier sert de background, les deux autres sont par dessus le background, c'est automatique puisque ces deux JPanels sont dans le JPanel de background...
public static void main(String[] args) { JFrame frame = new JFrame(); frame.setLayout(null); frame.setSize(500,500); ImagePanel3 back = new ImagePanel3("C:/0.png"); back.setLayout(null); frame.add(back); ImagePanel3 img1 = new ImagePanel3("C:/1.png"); img1.setLocation(100,100); back.add(img1); ImagePanel3 img2 = new ImagePanel3("C:/2.png"); img2.setLocation(300,300); back.add(img2); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }