Image comme fond de fenetre [Résolu]

Messages postés
301
Date d'inscription
jeudi 18 décembre 2003
Dernière intervention
9 février 2010
- - Dernière réponse : pierrehenri56
Messages postés
63
Date d'inscription
mardi 4 décembre 2007
Dernière intervention
29 octobre 2013
- 25 mars 2008 à 09:48
slt tout le monde
1) je veux mettre comme fond (dans une fenetre Frame) une image stockée dans le disque dur, comment faire???
2) je veux établir une application java utlisant 2 sockets, tout en rélisant un transfert de fichier texte entre elles!!! je sais pas d'ou commencer.
merci d'avance!!
Afficher la suite 

Votre réponse

7 réponses

Messages postés
255
Date d'inscription
jeudi 30 janvier 2003
Dernière intervention
9 avril 2007
0
Merci
salut othland,

1)

* Creer une fonction public void paintComponent(Graphics g) dans ta JFrame

* Recupere ton image grace a un Toolkit de la facon suivante dans le constructeur par ex :

Image fond=null;

Toolkit kit = Toolkit.getDefaultToolkit();

fond = kit.getImage("fond.jpg");

*Ensuite dans ta methode paintComponent tu fais:

g.drawImage(fond,0,0,this);

Ca peindra le fond de ta Jframe avec l'image de fond...





Voila ...

Sinon pour les sockets je ne connais pas beaucoup ....c po a moi qui faut demander...





Voila ++++

##########################
# Alphaspawnrider@Yohann
# alphaspawnrider@hotmail.com
##########################
Commenter la réponse de cs_Spawnrider
Messages postés
301
Date d'inscription
jeudi 18 décembre 2003
Dernière intervention
9 février 2010
0
Merci
merci spawnrider, ça marche!!
Commenter la réponse de cs_othland
Messages postés
11
Date d'inscription
samedi 26 octobre 2002
Dernière intervention
4 janvier 2008
0
Merci
Bonjour, j'ai un énorme souci c'est que je n'arrive pas à faire marcher le code ci dessus.
Je suis en stage et j'ai déjà une semaine et demi de retard sur le projet par rapport au planning qu'on m'a fixé.
Je ne comprend pas où je dois placer la fonction "fonction public void paintComponent(Graphics g)".
Voici mes sources :

import java.awt.*;
import java.awt.event.*;
import java.awt.image.ImageObserver;
import javax.swing.*;


public class ecran
{
JFrame fen; //fenêtre de l'application
Image icon_fen; //icone pour la fenetre
Image background; //arriere de la fenetre

public static void main(String[] args){
System.out.println("Chargement en cours...");
new ecran();
}

public void paintComponent(Graphics g) {
g.drawImage(background,0,0,this);
}

public ecran(){
//création de la fenêtre
icon_fen=Toolkit.getDefaultToolkit().getImage("./img_ecran2/icon_fen.jpg");
fen=new JFrame("Assurance Data - Accueil");
fen.setIconImage(icon_fen);
//fen.setContentPane();
//fond de fenetre
Toolkit kit = Toolkit.getDefaultToolkit();
background = kit.getImage("./img_ecran2/Accueil.jpg");
//écouteur pour fermeture de la fenêtre
fen.addWindowListener(new Fermeture());
//mise en place et affichage
fen.pack();
fen.setBounds(114,110,795,547);
fen.setVisible(true);
}

class Fermeture extends WindowAdapter {
public void windowClosing(WindowEvent e) {
fen.setVisible(false);
System.exit(0);
}
}
}

merci d'avance
Commenter la réponse de piqdom
Messages postés
255
Date d'inscription
jeudi 30 janvier 2003
Dernière intervention
9 avril 2007
0
Merci
tu dois mettre ta methode paintComponent dans ta JFrame donc dans la classe heritant de JFrame.
Pour ta part, il me semble que ce soit dans la classe fen...
Et deplace tes deux lignes de ton constructeur dans celui de Fen

voili voulou ;)

##########################
# Alphaspawnrider@Yohann
# alphaspawnrider@hotmail.com
##########################
Commenter la réponse de cs_Spawnrider
Messages postés
11
Date d'inscription
samedi 26 octobre 2002
Dernière intervention
4 janvier 2008
0
Merci
rebonjour, merci de ta réponse mais je ne comprend toujours pas car je n'ai pas de classe fen. Les lignes ci dessus font parties d'un seul fichier nommé ecran.java.
Pourrais-tu me donner mon code modifié car je travaille sous eclipse et je ne sais pas si je comprend bien ce que tu veux dire car eclipse m'indique une erreur.

merci d'avance
Commenter la réponse de piqdom
Messages postés
11
Date d'inscription
samedi 26 octobre 2002
Dernière intervention
4 janvier 2008
0
Merci
j'ai enfin trouvé merci pour tout.

Voici le code au final:

//awt
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
//swing
import javax.swing.*;


public class ecran extends JFrame
{
JFrame fen; //fenêtre de l'application
Image icon_fen; //icone pour la fenetre
JFrameBackground img_background = new JFrameBackground(); //image de fond

public static void main(String[] args){
System.out.println("Chargement en cours...");
new ecran();
}

public ecran(){
//création de la fenêtre
icon_fen=Toolkit.getDefaultToolkit().getImage("./img_ecran2/icon_fen.jpg");
fen=new JFrame("Assurance Data - Accueil");
fen.setIconImage(icon_fen);
//fond de fenetre
fen.setContentPane(img_background);
//écouteur pour fermeture de la fenêtre
fen.addWindowListener(new Fermeture());
//mise en place et affichage
fen.pack();
fen.setBounds(114,110,795,580);
fen.setVisible(true);
}

class JFrameBackground extends JComponent
{
public void paintComponent(Graphics g)
{
g.drawImage(this.toBufferedImage(),0,0,null);
}

private BufferedImage toBufferedImage()
{
Image image = new ImageIcon("./img_ecran2/Accueil.jpg").getImage();
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics g = bufferedImage.createGraphics();
g.drawImage(image, 0, 0, this);
//g.dispose();
return bufferedImage;
}
}

class Fermeture extends WindowAdapter {
public void windowClosing(WindowEvent e) {
fen.setVisible(false);
System.exit(0);
}
}
}

bon courage pour les autres
Commenter la réponse de piqdom
Messages postés
63
Date d'inscription
mardi 4 décembre 2007
Dernière intervention
29 octobre 2013
0
Merci
Bonjour à tous, je suis actuellement en stage ossi et je cherche depuis un moment comment mettre une image de fond et je galère. J'ai éssayé plusieurs méthodes mais impossible. Je pense que vous allez pouvoir m'aider. Voici mon code Merci d'avance.

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

import java.lang.reflect.*;
 

public class ConnectView extends JFrame implements ActionListener
{
    private JPasswordField passwordField;
    private JTextField loginField;
    private JPanel p1,pi,fond, p2;

    public ConnectView(String caption)
    {

        setTitle(caption);
        p1 = new JPanel();
        p1.setOpaque(true);
        setContentPane(p1);
        p1.setLayout(new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();       
        loginField = new JTextField(10);
        loginField.setActionCommand("Text");
        loginField.addActionListener(this);
        JLabel loginLabel = new JLabel("Identifiant");
        loginLabel.setLabelFor(loginField);
       
        JButton connection = new JButton("Connexion");
        connection.setActionCommand("Connexion");
        connection.addActionListener(this);

        passwordField = new JPasswordField(10);  

        passwordField.setActionCommand("pass");

        passwordField.addActionListener(this); 

        JLabel passwordLabel = new JLabel("Entrez le mot de passe : "); 

        p1.add(passwordLabel); 

        p1.add(passwordField);

        c.gridx = 0;
        c.gridy = 0;
        c.insets = new Insets(0,0,5,0);
        p1.add(loginLabel,c);
        c.gridx = 0;
        c.gridy = 1;
        c.insets = new Insets(0,0,20,0);
        p1.add(loginField,c);
        c.gridx = 0;
        c.gridy = 2;
        c.insets = new Insets(0,0,5,0);
        p1.add(passwordLabel,c);
        c.gridx = 0;
        c.gridy = 3;
        c.insets = new Insets(0,0,40,0);
        p1.add(passwordField,c);
        c.gridx = 0;
        c.gridy = 4;
        p1.add(connection,c);
        
} //end constructor

    public void actionPerformed(ActionEvent e)
    {
    if("Connexion".equals(e.getActionCommand()))
        {
        boolean correct = false; 

        char [] input = passwordField.getPassword();
        String login = loginField.getText();
        ConnectEngine anEngine = new ConnectEngine();
        if(anEngine.Connexion(login, input))
        {
        JOptionPane.showMessageDialog(this, "Bonjour " + login);
        }
        else{ 

        JOptionPane.showMessageDialog(this, "incorrect... re-essayez."); 

        }      

        passwordField.setText("");
        }
    }

    private static void createAndShowGUI()
    {
        ConnectView frame = new ConnectView("Ecran de connexion");
        frame.setSize(326,326);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);
        frame.setAlwaysOnTop(true);
        frame.setResizable(false);
       
    }

    public static void main(String[] args)
    {
        javax.swing.SwingUtilities.invokeLater(new Runnable()
        {
            public void run() { createAndShowGUI(); }
        });
    }
} //end class
Commenter la réponse de pierrehenri56

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.