Interface graphique : JAVA
salam,

je suis entrain de réaliser une interface graphique en java et j'ai pas mal de problemes avec les JPanels et les boutons d'evenements.

j'ai besoin de votre aide svp

Merci
Personne!!!!!
t'as vu le site codessources ?
c'est quoi ton problème ?
expose en détail !
je suis entrain de réaliser une interface graphique avec des boutons ecouteurs intelligents mais je rencontre beaucoup de souci : affichage et création d'ecouteurs

je dois réaliser cette interface : Interface

Le bouton exit pour quitter l'application,minuscule majuscule pour changer le label d en haut et je dois pouvoir changer la couleur du texte et du fond aussi ...

j'ai crée les classes mais le panel du centre ,qui contient d'autre panels ne s'affiche pas, voici mon code :


public class MaFrame extends JFrame {
private JLabel label;
private JButton bexit=new JButton("EXIT" );

public MaFrame(){
super();
this.setTitle("Programme PDT v 1.0" );
this.setResizable(true);
this.setAlwaysOnTop(true);
this.setSize(500,500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel container= new JPanel();
container.setLayout(new BorderLayout());
container.setBackground(Color.white);

label=new JLabel("BONJOUR",JLabel.CENTER);

JPanel panecentre=new JPanel(new FlowLayout());

Couleur panelcouleur= new Couleur();
panecentre.add(panelcouleur);

Forme panelforme=new Forme();
panecentre.add(panelforme);

Contenu panelcontenu=new Contenu();
panecentre.add(panelcontenu);

JPanel panesud= new JPanel(new FlowLayout());
GestionQuitter gestionQuitter = new GestionQuitter();
this.bexit.addActionListener(gestionQuitter);
panesud.add(bexit);

container.add(label,BorderLayout.NORTH);
container.add(panecentre,BorderLayout.CENTER);
container.add(panesud,BorderLayout.SOUTH);
this.setContentPane(container);
this.pack();

this.setVisible(true);
}}

J'ai également crée les autres classes : Couleur, Contenu, et Forme
je vois pas l'origine du problème soit l'instanciation des panels issus de ces classes ou autre chose,
voici un apercu de la classe couleur :

public class Couleur extends JPanel{

JPanel panelcouleur=new JPanel();

JLabel couleur= new JLabel("couleur" );
JLabel dutexte=new JLabel("Du texte" );
JLabel dufond=new JLabel("Du fond" );

JComboBox jcb1=new JComboBox();
JComboBox jcb2=new JComboBox();


public Couleur(){
GridLayout glc=new GridLayout(6,1);
panelcouleur.setLayout(glc);

panelcouleur.add(couleur);
panelcouleur.add(dutexte);
panelcouleur.add(dufond);

jcb1.addItem("White" );
jcb1.addItem("Black" );
jcb1.addItem("Green" );
jcb1.addItem("Red" );
jcb1.addItem("Pink" );
jcb1.addItem("Yellow" );

panelcouleur.add(jcb1);

jcb2.addItem("White"winking smiley;
jcb2.addItem("Black"winking smiley;
jcb2.addItem("Green"winking smiley;
jcb2.addItem("Red"winking smiley;
jcb2.addItem("Pink"winking smiley;
jcb2.addItem("Yellow"winking smiley;

panelcouleur.add(jcb2);
}}
Citation
Conswello a écrit:
t'as vu le site codessources ?

Non je suis entrain de regarder

Merci a vous
Citation
Conswello a écrit:
t'as vu le site codessources ?

j'ai regardé sur ce site mais il traite que des programmes beaucoup plus compliqués que le mien

Merci
ok ca fait bien longtemps que je code plus neanmoins c'est quoi qui ne s'affiche pas ?

le panel Contenu
ou le panel Forme ????

as tu fixer une preferred size ?
as tu fait un .pack() ?
as tu fait un .set visible(true) dans Contenu et Forme

si tu as fait tout as tu fait le add sur ton layout ?


voila cela ne t'aide pas mais tu n'a pas mis les autre classes !
Merci pour ta réponse

je n'ai pas mis de .pack ni de setvisible(true) dans les classes couleur, contenu et forme

ce sont des classes ou j'ai seulement défini et crée les panels qui sont instanciés dans la classe MaFrame

ces 3 panels je les ajoute à un autre panel : panecentre et c'est ce panel qui ne s affiche pas

alors que le panel du sud s affiche ainsi que le label du nord.

je sais pas si je suis tres claire

voici les classes contenu et forme :


public class Forme extends JPanel{

JLabel lab=new JLabel("Forme"winking smiley;

JRadioButton r1=new JRadioButton("à droite"winking smiley;
JRadioButton r2=new JRadioButton("Centre"winking smiley;
JRadioButton r3=new JRadioButton("à gauche"winking smiley;

JButton maj=new JButton("MAJUSCULE"winking smiley;
JButton min=new JButton("minuscule"winking smiley;;

JPanel panelforme=new JPanel();

public Forme(){

panelforme.setBackground(Color.CYAN);
GridLayout glf=new GridLayout(7,1);
panelforme.setLayout(glf);

lab.setFont(new Font("Helvetica",Font.BOLD,12));
panelforme.add(lab);

panelforme.add(r1);
panelforme.add(r2);
panelforme.add(r3);

panelforme.add(maj);
panelforme.add(min);
//ActionListener ecouteur=new GestionnaireClicks(this.maj);
//this.maj.addActionListener(ecouteur);
}
}



public class Contenu extends JPanel{

JLabel contenu=new JLabel("Contenu"winking smiley;

JList liste=new JList();
JScrollPane jscp=new JScrollPane();

JButton bAjout= new JButton();
JTextField saisie=new JTextField();
JPanel panelContenu=new JPanel();

public Contenu(){

panelContenu.setLayout(new BorderLayout());

panelContenu.add(contenu);
panelContenu.add(bAjout);
panelContenu.add(saisie);


}

}
En tout cas ce que je peux te dire a première vu c'est que tu as 3 problèmes et tu peux un peux plus optimiser ton code afin de mieux contrôler le positionnement de tes objets.

1- dans la Classe Forme a la fin de ton constructeur ajoute ca this.add(panelforme);
2- pareil dans le constructeur de la classe Couleur this.add(panelcouleur);
3- dans le constructeur de la classe Contenu pareil
panelContenu.setPreferredSize(new Dimension(50,50));
this.add(panelContenu);
tu doit definir aussi des taille préférentiel pour afficher tes objects l'ideal aussi c'est que tes Jtextfield ect tu spécifie une taille ou un nombre de column...

4- dans la Classe MaFrame pareil defini une preferred size panecentre.setPreferredSize(new Dimension(300,300)); juste apres sa declaration.

Une autre question c'est une volonté de ta part d'utiliser différent layout différent GridBagLayout, FlowLayout, BorderLayout ???

Voila désolé de ne pas t'aider plus !



Modifié 1 fois. Dernière modification le 16/12/10 08:13 par moha93.
Ca fait un bail que je ne code plus en Java, va sur developpez.com on t'aidera à résoudre ton problème.



Ex-Ouarza
pareil pour moi mais cela m'arrive encore de faire des revue de code !
Citation
moha93 a écrit:
En tout cas ce que je peux te dire a première vu c'est que tu as 3 problèmes et tu peux un peux plus optimiser ton code afin de mieux contrôler le positionnement de tes objets.

1- dans la Classe Forme a la fin de ton constructeur ajoute ca this.add(panelforme);
2- pareil dans le constructeur de la classe Couleur this.add(panelcouleur);
3- dans le constructeur de la classe Contenu pareil
panelContenu.setPreferredSize(new Dimension(50,50));
this.add(panelContenu);
tu doit definir aussi des taille préférentiel pour afficher tes objects l'ideal aussi c'est que tes Jtextfield ect tu spécifie une taille ou un nombre de column...

4- dans la Classe MaFrame pareil defini une preferred size panecentre.setPreferredSize(new Dimension(300,300)); juste apres sa declaration.

Une autre question c'est une volonté de ta part d'utiliser différent layout différent GridBagLayout, FlowLayout, BorderLayout ???

Voila désolé de ne pas t'aider plus !


Merci beaucoup a toi Moha93Welcome

c'est bon j'ai pu résoudre le problème j'ai le tout qui s afficheDanse c été un détail tout bete lol

Le choix des différents Layout nous a eté imposé.
tant mieux !!!
salam,

Je pense que tu veux développer un site web ?? dans ce cas je te propose d'utiliser les pages JSP au lieux des interfaces JAVA

aussi quel IDE t'utilise Netbeans ou eclipse ? Netbeans est assez cool pour les interfaces.

bon courage.
non je croit plutôt que c'est un exercice de son école c'est les cas typique de TP java pour appréhender les écouteurs les component, l'heritage etc ...
Citation
ingd a écrit:
salam,

Je pense que tu veux développer un site web ?? dans ce cas je te propose d'utiliser les pages JSP au lieux des interfaces JAVA

aussi quel IDE t'utilise Netbeans ou eclipse ? Netbeans est assez cool pour les interfaces.

bon courage.

Salam

j'utilise Eclipse comme IDE.JSP je ne connais pas encore

c etait un mini projet pour l'école comme a dis moha93

Merci a vous
comment creer une interface graphique avec netBeans cette interface contient un login+ mot de passe +boton ok
bonjour

a mon avis tu peux utiliser NETBEANSpor cree l'interface apres prendre le code source de l'interface et le coller dans netbeans
tu peux voir ce exemple

[programmez.com]
Facebook