Java
hug0ox
Messages postés
9
Statut
Membre
-
nabil07 Messages postés 161 Statut Membre -
nabil07 Messages postés 161 Statut Membre -
Bonjour,
Je souhaite afficher une image de fond dans mon conteneur mais ce code ne marche pas:
Code classe fenetre:
import java.awt.*;
import javax.swing.*;
public class fenetre {
JFrame fenetre ;
JButton jbPLay;
JButton jbClose;
JLabel label;
public fenetre(String titre) {
fenetre = new JFrame(titre);
Container contenu =
fenetre.getContentPane();
JPanel Button = new JPanel();
jbPLay = new JButton("Jouer");
jbClose = new JButton("Quitter");
contenu.add(Button);
fenetre.setVisible(true);
fenetre.setSize(600,500);
map x = new map();
}
}
code classe map:
import javax.swing.* ;
import java.awt.* ;
public class map extends JPanel{
private Image image = null;
public void paint(Graphics g)
{
super.paintComponent(g);
image = getToolkit().getImage("background.gif");
if(image != null) // Si l'image existe, ...
g.drawImage(image, 200, 20, this); // ... on la dessine
repaint();
}
}
et dans le main :
fenetre f = new fenetre(); // enfin vous vous en doutiez =)
voila voila, merci d'avance!
P.S: Une fenêtre s'affiche mais elle est vide et la méthode pack(); m'affiche une fenetre minuscule, alors que mon image est de grande taille..
Je souhaite afficher une image de fond dans mon conteneur mais ce code ne marche pas:
Code classe fenetre:
import java.awt.*;
import javax.swing.*;
public class fenetre {
JFrame fenetre ;
JButton jbPLay;
JButton jbClose;
JLabel label;
public fenetre(String titre) {
fenetre = new JFrame(titre);
Container contenu =
fenetre.getContentPane();
JPanel Button = new JPanel();
jbPLay = new JButton("Jouer");
jbClose = new JButton("Quitter");
contenu.add(Button);
fenetre.setVisible(true);
fenetre.setSize(600,500);
map x = new map();
}
}
code classe map:
import javax.swing.* ;
import java.awt.* ;
public class map extends JPanel{
private Image image = null;
public void paint(Graphics g)
{
super.paintComponent(g);
image = getToolkit().getImage("background.gif");
if(image != null) // Si l'image existe, ...
g.drawImage(image, 200, 20, this); // ... on la dessine
repaint();
}
}
et dans le main :
fenetre f = new fenetre(); // enfin vous vous en doutiez =)
voila voila, merci d'avance!
P.S: Une fenêtre s'affiche mais elle est vide et la méthode pack(); m'affiche une fenetre minuscule, alors que mon image est de grande taille..
Configuration: Windows XP Firefox 3.0.14
4 réponses
-
salut,
tout d'abord commençons par la classe fenêtre:
import java.awt.*; import javax.swing.*; public class fenetre { JFrame fenetre ; JButton jbPLay; JButton jbClose; JLabel label; public fenetre(String titre) { fenetre = new JFrame(titre); Container contenu = fenetre.getContentPane(); JPanel Button = new JPanel(); // ceci pour contenir les boutons Jouer et Quitter jbPLay = new JButton("Jouer"); jbClose = new JButton("Quitter"); // il te manque ici d'ajouter les boutons au panel Boutton.add(jbPlay); Boutton.add(jbClose); contenu.add(Button,BorderLayout.SOUTH); map x = new map(); // ici tu dois ajouter le l'image contenu dans l'objet map dans ta fenêtre principale. contenu.add(x,BorderLayout.CENTER); fenetre.setSize(600,500); fenetre.setVisible(true); } }
passons voir maintenant la classe map :
import javax.swing.* ; import java.awt.* ; public class map extends JPanel{ private Image image = null; public void paint(Graphics g){ super.paintComponent(g); image = Toolkit.getDefaultToolkit().createImage("background.gif"); if(image != null) // Si l'image existe, ... g.drawImage(image, 200, 20, this); // ... on la dessine repaint(); } }
bon, révise tes erreurs pour ne pas commettre la même faute .
Cordialement. -
Merci beaucoup !!!
Mais la fenetre se charge, les boutons s'affichent en bas mais l'image ne s'affiche pas.. peut etre un probleme de dimension, je verrais ca ... -
Arf, quoi que je fasse, l'image ne s'affiche pas -__-'
Ou est le problème ? -
Bonsoir,
moi je propose d'utiliser des labels (JLabel) au lieu des panneaux (JPanel).
c'est plus facile la manipulation.
voici ton code en utilisant une label:
import java.awt.*; import javax.swing.*; public class fenetre { JFrame fenetre ; JButton jbPlay; JButton jbClose; JLabel label; public fenetre(String titre) { fenetre = new JFrame(titre); Container contenu = fenetre.getContentPane(); JPanel Button = new JPanel(); // ceci pour contenir les boutons Jouer et Quitter jbPlay = new JButton("Jouer"); jbClose = new JButton("Quitter"); // il te manque ici d'ajouter les boutons au panel Button.add(jbPlay); Button.add(jbClose); contenu.add(Button,BorderLayout.SOUTH); //map x = new map(); JLabel label = new JLabel(); Image image = Toolkit.getDefaultToolkit().createImage("lock.jpg"); label.setIcon(new ImageIcon(image)); // ici tu dois ajouter le l'image contenu dans l'objet map dans ta fenêtre principale. contenu.add(label,BorderLayout.CENTER); fenetre.setSize(600,500); fenetre.setVisible(true); fenetre.pack(); fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String args[]){ fenetre frame = new fenetre("Show Image"); } }
et c'est à toi de choisir à la fin :)
Cordialement.