Image comme fond de fenetre

Résolu
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 - 27 févr. 2005 à 19:29
pierrehenri56 Messages postés 63 Date d'inscription mardi 4 décembre 2007 Statut Membre 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!!

7 réponses

cs_Spawnrider Messages postés 254 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 9 avril 2007 1
27 févr. 2005 à 23:47
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
##########################
0
cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 1
2 mars 2005 à 16:11
merci spawnrider, ça marche!!
0
piqdom Messages postés 11 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 4 janvier 2008
2 mars 2006 à 18:20
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
0
cs_Spawnrider Messages postés 254 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 9 avril 2007 1
2 mars 2006 à 19:11
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
##########################
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
piqdom Messages postés 11 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 4 janvier 2008
3 mars 2006 à 09:34
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
0
piqdom Messages postés 11 Date d'inscription samedi 26 octobre 2002 Statut Membre Dernière intervention 4 janvier 2008
3 mars 2006 à 10:12
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
0
pierrehenri56 Messages postés 63 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 29 octobre 2013 1
25 mars 2008 à 09:48
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
0
Rejoignez-nous