Java_Affichage d'une fenetre ?

Fermé
Melia123 Messages postés 2 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 11 avril 2009 - 11 avril 2009 à 14:21
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 11 avril 2009 à 18:45
Bonjour, je débute en java et essaie d'afficher un bouton (mis dans un conteneur) dans un JPanel. De sorte que, lorsque je clic sur mon bouton, le systeme reagisse en ecrivant automatiquement autre chose sur ce bouton. A la compilation, il n'y a pas d'erreur mais je n'ai qu'une fenetre rouge vide qui s'affiche sans bouton... Pourquoi?! Que faut-il ajouter (sans changer trop mon programme) pour que le bouton s'affiche svp ? Merci !Merci ! ! !
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class Fenetre extends JFrame implements ActionListener
{
int nbClics=0;
JButton chBouton=new JButton("Mon Bouton");

String[] chPosition={"CENTER"};
JPanel chConteneur=new JPanel();
Container[] chConteneur={chBouton};

public Fenetre(String parTitre)
{
super(parTitre);

Container conteneur=getContentPane();
conteneur.setLayout(new BorderLayout(30,10));

System.out.println();
JPanel chConteneur=new JPanel;
chBouton.addActionListener(this);

pack();
setSize(600,300);
setVisible(true);
setLocation(200,200);
conteneur.setBackground(Color.red);
conteneur.add(chBouton,chPosition);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent parEvt)
{
if(parEvt.getSource()==chBouton && nbClics!=0)
{
chBouton.setText("Voilà");

}

}
}

class exercice
{

public static void main(String [] parExt)
{
new Fenetre("hihi");
}
}

2 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
11 avril 2009 à 14:40
je vois que tu n'ajoute jamais ton bouton a ton panel ça doit etre ça essaye en rajoutant
chConteneur.conteneur.add(chBouton,chPosition);
pour dire qu'il s'agit du contexte graphique de ton panel
0
Melia123 Messages postés 2 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 11 avril 2009
11 avril 2009 à 15:16
D'abord, merci beaucoup d'avoir répondu ! ! =)
He bien jai rajouté la ligne mais il me met une erreur: "cannot find symbol variable conteneur" (je dois déclarer le conteneur? :/ )

(PS:Jai mis en commentaire la ligne //JPanel chConteneur=new JPanel(); de mon programme car javais oublié de le faire en posant la question et elle provoquait une erreur! .. mais sinon ça m'affichait bien qu'une fenetre rouge comme je l'avais dit )
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
11 avril 2009 à 16:31
dans ce cas essaye de la faire sans passer par une variable
chConteneur.getContentPane().setLayout(new BorderLayout(30,10)); 
System.out.println(); 
chBouton.addActionListener(this); 
pack(); 
setSize(600,300); 
setLocation(200,200); 
chConteneur.getContentPane().setBackground(Color.red); 
chConteneur.getContentPane().add(chBouton,chPosition);
setVisible(true); 
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
11 avril 2009 à 18:45
heu ben non ça risque pas de marcher ça...j'ai confondu le panel et la frame
il faudrait plutot ajouter ton bouton a ton panel puis ajouter ton panel au contexte graphique de ta frame et mettre le setVisible a la fin
Container conteneur=getContentPane();
conteneur.setLayout(new BorderLayout(30,10));

System.out.println();

chBouton.addActionListener(this);

pack();
setSize(600,300);

setLocation(200,200);
conteneur.setBackground(Color.red);
chConteneur.add(chBouton,chPosition);
conteneur.add(chConteneur); 
setVisible(true);
ça devrait marcher la ;)
0