Image de fond dans une Frame

Image de fond dans une Frame - Java - Programmation

Marsh Posté le 01-04-2004 à 01:07:47    

Bonjour à tous,  
je débute en Java, j'implore donc votre clémence ! ;)
 
J'ai ma frame, avec des composants (bouton, combo, etc...) dessus, mais je n'arrive pas a mettre une image de fond.  
 
Lorsque je rajoute les éléments suivants :  
 
Image image= getToolkit().getImage("mat.jpg" );
public void paint(Graphics g){  
    g.drawImage(image,0,0,this);    
  }  
l'image s'affiche dans une nouvelle fenetre, mais pas dans ma frame initiale...  
Comment faire ?  
 
-----  
Je joins le code source :  
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Graphics.*;
 
public class IhmInit extends JFrame
{
  public IhmInit()  
    {
      Menu();
      Fenetre();
   }
  JMenuBar barreMenu;
 
     Image image= getToolkit().getImage("mat.jpg" );
 
  public void Menu()
  {
      barreMenu = new JMenuBar();
      JMenu menu1 = new JMenu("Fichier" );
      barreMenu.add(menu1);
   }
 
JFrame fenetrePrinc;
JComboBox lacomboPrinc;
JComboBox laBoxFactice;
JComboBox result;
JButton boutonValid1;
 
  public void Fenetre()  
    {
      fenetrePrinc = new JFrame();
      fenetrePrinc.getContentPane().setBackground(Color.WHITE);
     
      String messageAccueil1 ="Bienvenue dans l'application A.D.R.E.S.S. vous permettant de retrouver les correspondances";
      JLabel accueil1 = new JLabel (messageAccueil1);
      accueil1.setBounds(125,25,550,15);
      fenetrePrinc.getContentPane().add(accueil1);
   
      result = new JComboBox();
      result.setBounds(375,355,360,40);
      fenetrePrinc.getContentPane().add(result);
       
      boutonValid1 = new JButton ("Valider" );
      boutonValid1.setToolTipText("Cliquez pour faire correspondre votre choix avec le code \"rivoli\" de cette voie" );
      boutonValid1.setBounds(375,400,100,20);
      fenetrePrinc.getContentPane().add(boutonValid1);
     
      lacomboPrinc = new JComboBox ();
      lacomboPrinc.setBounds(250,130,300,40);
      fenetrePrinc.getContentPane().add(lacomboPrinc);
           
      lacomboPrinc.insertItemAt("Champs renseignés", 0);
      lacomboPrinc.insertItemAt("exp1", 1);
 
      laBoxFactice = new JComboBox();
      laBoxFactice.setBounds(150,355,115,40);
      fenetrePrinc.getContentPane().add(laBoxFactice);
       
      String titre = "A.D.R.E.S.S.  ::  Algorithme De Rapprochement Entre Syntia et Sigareo";
      fenetrePrinc.setLocation(100,50);
      fenetrePrinc.setSize(800,485);
      fenetrePrinc.getContentPane().setLayout(null);
      fenetrePrinc.setTitle(titre);
      fenetrePrinc.setJMenuBar(barreMenu);
      Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
      fenetrePrinc.setLocation((screenSize.width-fenetrePrinc.getWidth())/2, (screenSize.height-fenetrePrinc.getHeight())/2);
      fenetrePrinc.setVisible(true);
      Image icone = Toolkit.getDefaultToolkit().getImage("c:/logo.jpg" );
      fenetrePrinc.setIconImage(icone);
   
      fenetrePrinc.getContentPane().repaint();
      fenetrePrinc.getContentPane().setVisible(true);    
  }
  public static void main(String[] args)  
    {
    IhmInit IHM_Init1 = new IhmInit();
   }
 public void paintComponent(Graphics g){  
    g.drawImage(image,0,0,this);    
 }  
}


Message édité par tieum78 le 01-04-2004 à 15:30:03
Reply

Marsh Posté le 01-04-2004 à 01:07:47   

Reply

Marsh Posté le 01-04-2004 à 02:04:19    

désolé mais je ne connais pas java. par contre, il est déconseillé de donner son mail sur le forum. edit ton post stp

Reply

Marsh Posté le 03-04-2004 à 20:09:18    

Pour mettre une image de fond, ma combine est la suivante (il y a peut-être beaucoup mieux): je crée un JLabel de la taille de la JFrame, et dans ce JLabel je mets mon image. Bon voilà. Ca donne à peu près ça:
 
//ATTRIBUTS
private JLabel monLabel;
private ImageIcon monIcone;
 
//METHODE
monLabel = new JLabel();
monIcone = new ImageIcon("../images/uneImage.jpg" );
monLabel.setIcon(monIcone);
monLabel.setBounds(0, 0, 800, 600);
this.getContentPane().add(monLabel);
 
Peux-tu me dire si ça marche ?

Reply

Marsh Posté le 06-04-2004 à 14:01:11    

Si je ne me trompe pas, tu devrais avoir deux fenetres, une avec ton image et ton menu, et une autre avec le reste de tes composants, non ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed