Image de fond d'une Fenêtre en Java

Fermé
Zyo1 Messages postés 83 Date d'inscription vendredi 22 juin 2012 Statut Membre Dernière intervention 24 juillet 2015 - Modifié par Zyo1 le 30/08/2012 à 21:45
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 31 août 2012 à 10:49
Bonjour,

Je programme en Java et je voudrais mettre une image de fond à la place de la couleurs standard de la JFrame de manière à pouvoir y positionner ensuite mes éléments tel que mes boutons dessus (sur l'image).

Quelle est la manière la plus simple pour faire cela?

4 réponses

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
30 août 2012 à 22:02
Créer un JLabel avec une image en fond. Exemple :

public static void main(String...args)
{
	JFrame frame = new JFrame();	
	frame.add(new JLabel(new ImageIcon("D:/test.jpg")));	
	frame.pack();
	frame.setVisible(true);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
12
Zyo1 Messages postés 83 Date d'inscription vendredi 22 juin 2012 Statut Membre Dernière intervention 24 juillet 2015
30 août 2012 à 22:11
D'accord sa marche, merci de ta réponse.
Mais ensuite je fais comment pour positionner des boutons sur l'image de fond que j'aurai mise?
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
31 août 2012 à 10:49
Exemple :

public static JPanel setBackgroundImage(JFrame frame, final File img) throws IOException
{
	JPanel panel = new JPanel()
	{
		private static final long serialVersionUID = 1;
		
		private BufferedImage buf = ImageIO.read(img);
		
		@Override
		protected void paintComponent(Graphics g)
		{
			super.paintComponent(g);
			g.drawImage(buf, 0,0, null);
		}
	};
	
	frame.setContentPane(panel);
	
	return panel;
}

public static void main(String...args) throws IOException
{
	JFrame frame = new JFrame();
	
	JPanel panel = setBackgroundImage(frame, new File("C:/test.png"));
	
	panel.add(new JButton("A"));
	panel.add(new JButton("B"));
	panel.add(new JButton("C"));
			
	frame.pack();
	frame.setVisible(true);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
0