Image arriere plan

Résolu
Signaler
-
 Utilisateur anonyme -
Salut a tous

Voila j'ai ce programme et il me faudrait un arriere plan, j'ai essaye comme il faut faire avec la methode public void paint, mais ca ne marche pas, il faut que je laisse le jwindow.

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

public class Rts{

public static void main(String[] args){

new Graph();
}
}

class Graph extends JWindow {

JButton b = new JButton("QUITTER");
JButton ba = new JButton(" NOUVELLE PARTIE");

public Graph(){

int width = (int)Toolkit.getDefaultToolkit().getScreenSize().width;
int height = (int)Toolkit.getDefaultToolkit().getScreenSize().height;

setBounds(0,0,width,height);

getContentPane().setBackground(java.awt.Color.black);

getContentPane().setLayout(null);

getContentPane().add(b);
getContentPane().add(ba);

b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

System.exit(0);

}});

int c = width/2-50;
int a = height-50;

b.setBounds(c,a,100,40);

ba.setBounds(300,10,200,40);

setVisible(true);

}
}

Voilà est ce ke donc c'est poissible de remplacer le background noir par une image; si vous pourriez me remplacer ce code par le nouveau avec l'image x.jpg.

merci d'avance ++ all

21 réponses


ok et encore merci ++ et bonne prog et merci merci merci
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
GodConan :clown)

il te suffi de redefinir la methode paint()

d un component JWindow convien tou a fait...

dc si tu veu qd meme les component ajouter a ta fenetre sans les redessiner toi meme

et bien tu appelle la methode super ;o)

ex :

public void paint( Graphics g )
{
// la tu affiche ton image de fond
g.drawImage.....
// la su appell super pour tou les object contenu
super.paint( g )
}
le prob c est que qd tu appel super il redessine le background et dc efface ton image ;o) alors il faut empecher cela grace a la methode
setOpaque( false ); ;o) et voila ....

++

J'ai fait ca, l'image s'affiche impec mais les bouttons s'affichent mais si je clique dessus il marche regarde

(j'arrive pas a faire setOpaque il me met une erreur lors de la compil)

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

public class Rts{

public static void main(String[] args){

new Graph();
}
}

class Graph extends JWindow {

private Image bg = getToolkit().getImage("v.jpeg");
public void paint(Graphics g) {
g.drawImage(bg,0,0,this);

}

JButton b = new JButton("QUITTER");
JButton ba = new JButton(" NOUVELLE PARTIE");

public Graph(){

int width = (int)Toolkit.getDefaultToolkit().getScreenSize().width;
int height = (int)Toolkit.getDefaultToolkit().getScreenSize().height;

setBounds(0,0,width,height);

getContentPane().setLayout(null);

getContentPane().add(b);
getContentPane().add(ba);

b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

System.exit(0);

}});

int c = width/2-50;
int a = height-50;

b.setBounds(c,a,100,40);

ba.setBounds(300,10,200,40);

setVisible(true);

}
}

J'espere ke tu pourrais faire en sorte ke les boutons restent tout en laissant l'image.

merci d'avance ++

Mais qu''est ce ke je met en opaque, si je met les boutons en opque false j'ai les boutons ki s'affichent mais plus l'image lol
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
GodConan :clown)

je te l ai di il te fau appeler la methode super si tu veu que les bouton s affiche .... car comme ca ce n est plus toi ki est responsable de leur affichage...
et le setOpaque c pour le conteneur

tu ai mal partie ds ton exemple ;o) il te faut faire un panel intermediaire ....

http://www.javafr.com/code.aspx?id=21361

prend mon exemple c tou a fai ce quil te faut...

Dans mon code j'ai ca :

Image bg = getToolkit().getImage("v.jpeg");
public void paint(Graphics g) {
g.drawImage(bg,0,0,this);
super.paint(g);

mais je vois pas comment mettre le setOpaque ou ke je le met a la compil c faux lol.

mon code est maintenant ca :

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

public class Rts{

public static void main(String[] args){

new Graph();
}
}

class Graph extends JWindow {

Image bg = getToolkit().getImage("v.jpeg");
public void paint(Graphics g) {
g.drawImage(bg,0,0,this);
super.paint(g);

}

JButton b = new JButton("QUITTER");
JButton ba = new JButton(" NOUVELLE PARTIE");

public Graph(){

int width = (int)Toolkit.getDefaultToolkit().getScreenSize().width;
int height = (int)Toolkit.getDefaultToolkit().getScreenSize().height;

setBounds(0,0,width,height);

getContentPane().setLayout(null);

getContentPane().add(b);
getContentPane().add(ba);

b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

System.exit(0);

}});

int c = width/2-50;
int a = height-50;

b.setBounds(c,a,100,40);

ba.setBounds(300,10,200,40);

setVisible(true);

}
}

j'ai les bouttons mais plus l'image lol je sais ke j'ai du mal a comprendre mais j'ai ke 14 ans et je debute; et pis pr le jpanel je comprend pas non plus, je suis oblige d'en faire un je peu pas laisser juste mon jwindow ?

enfin bon pourrais tu faire copier coller du code dans ta reponse (si il ya enfin j'espere) et m'ajouter le setOpaque au bon endroit et de la bonne façon avec si possible sans ajouter de jpanel mais si il en faut c'est pas un probleme enfin si, juste ke je sais pas comment le "configurer"; enfin k'il marche pour ce ke je veux.

Je t'en supplie ai pitier de moi je capte rien pour une simple image en arriere plan et j'en ai besoin. Pourrais tu m'ecrire vite fait le code ki marche jk'essayerai de tout comprendre une fois ke je suis sur ke ca marche.

merci d'avance ++ et bonne prog a tous.
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
GodConan :clown)

je n est pas conserver le code de cette exemple
va sur le lien que je t donnee et telecharge le fichier ZIP
que tu Unzip pour en extraire les source ;o) c est exactement ce que tu cherche ....

http://www.javafr.com/code.aspx?id=21361

reprend l exemple et tu comprendra surment plusieur petite chose de suite ... ;o) te restera plus qu a modifier pour tes besoins

++

Ps : l age ce n est pas une excuse ;o) ... j ai commencai a 11 ans ;o) moi...

est ce ke je dois faire un jpanel ou c pas la peine

et le setOpaque je le met ou stp

merci lol

Fanchement ton exemple je pige rien lol;

Je vois pas comment mettre de setOpaque au containe

je-met-koi-la-stp.setOpaque(false);

et ou

soit j'ai l'image ki s'affiche soit les boutons mais jamais les deux stp fo ke tu m'aides parce ke la je suis pomme

bon ++ all et bonne prog
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
GodConan :clown)

hmmm... ;o)

je-met-koi-la-stp = this
c est evidement le component ds lequel tu dessine l image que tu ne veu pas ki conserve son comportement par default dc tu lui di de pas dessiner son fond puisque tu y met une image ....

et c a faire ds le constructeur juste avant le setVisible par exemple ...

Tout est reelement ds l exemple que je t ai indiqué... Prend le temp de le lire .... modifi quelqque ligne et voi le resultat....

++

Metca marche pas lol il me fait une erreur a la compil sniff
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
GodConan :clown)

je t ai di de prendre un JPanel pas un JWindow ....

tu fait extends JPanel
et ensuite tu implement une JFrame par exemple ( ou un JWindow si t y tien ) auquel tu add ta class

J'ai essaye mais ca marche pas, je pense mal faire, tu peu juste me modifier mon code stp ???
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
GodConan :clown)

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

public class Bb
{

public static void main(String[] args)
{
JFrame frm = new JFrame( "ton prog " );
frm.getContentPane().setLayout( new BorderLayout() );
frm.getContentPane().add( new Graph(), BorderLayout.CENTER );
int w = (int) Toolkit.getDefaultToolkit().getScreenSize().width;
int h = (int) Toolkit.getDefaultToolkit().getScreenSize().height;
frm.setSize( w, h );
frm.setVisible( true );
}
}

class Graph extends JPanel
{

private Image bg = getToolkit().getImage(".\\images\\ant.jpg");

JButton btnExit = new JButton("QUITTER");
JButton btnNew = new JButton(" NOUVELLE PARTIE");
int width = (int) Toolkit.getDefaultToolkit().getScreenSize().width;
int height = (int) Toolkit.getDefaultToolkit().getScreenSize().height;

public Graph()
{


// setBounds(0, 0, width, height);

setLayout(null);

add( btnExit );
add( btnNew );

int w = ( width / 2) - 50;
int h = ( height / 2 ) - 150;

btnNew.setBounds( w - 50, h, 200, 40);
btnExit.setBounds( w, h + 100, 100, 40 );

btnExit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
setOpaque( false );
setBackground( Color.blue );
}

public void paint(Graphics g)
{
g.drawImage( bg, 0, 0, width, height, this );
super.paint( g );
}

}

voila j avai pourtant tous dis ;-(

te reste qd meme a utiliser un mediatracker pour loader l image avant l affichage .
evidement si tu y tien tu peu use une JWindow a la place de la JFrame ...

++

merci mais juste pr savoir,

pourquoi si je fais par exemple un public class kelke chose extends jpanel puis ds le public static void main .....
{
new phic();

}

puis tt a la fin

class phic{

JFrame aa= new JFrame();

tt va bien la puis la kan je met

aa.setVisible(true)

ou tt autre chose il me dit

identificateur attendu a la ligne ds jbuilder.

pourrais tu me dis dire juste mon erreur stp

++ all et bonne prog

}

PS : alors ke si je fais la meme chose ds public static... ca marche

Bon c'est pas grave j'abvandonne j'en ai marre kan je met mon imlage elle s'affiche kan je met v.jpeg enfin bon tant pis mais stp rpd moi juste pr mon probleme de class

C'est bon j'ai trouve pour le probleme de class, mais mon image d'arriere plna marche tjrs pas est ce si dur ke ca ???? kan je remplace ton truc par v.jpeg et et ke je met en JFRame avec un setlayout nul et setbounds et un jwindow set bounds 0,0,800,600 j'ai un truc tt gris avec rien pas de boutons ni d'image lol

ca me saoule j'en ai marre je veux une image d'arriere plan lol
Messages postés
2113
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
11
GodConan :clown)

BON 'ECOUTE' LE CODE QUE JE VIEN DE TE FOURNIR FONCTIONNE TRES BIEN (JE L AI TESTER) DC TU FAI UN COPIER COLLER ET VOILA TU MET JUSTE LE NOM DE TON IMAGE A LA PLACE DU MIEN et change le nom du fichier aussi SANS RIEN CHANGER D OTRE ...

ET TU ATTEND 2 MIN APRES AVOIR LANCER TON APPLI POUR QUE L IMAGE SE CHARGE.....

Grrrrr

++

Excuse le temps ke l'image charge lol je te remercie infiniment de ton aide precieuse et ke dieu te benisse j'ai enfin trouve grace toi merci infiniment