Comme le mentionne le titre je suis débutant en développement Java. Et
j'ai actuellement un problème avec les composants Swing et leur
manipulation. Je souhaite faire une fenetre contenant un menu.
Chaque menu possède au moins un item.
Le fait de cliquer sur un item aurait comme conséquence de changer le
Panel qui s'affiche dans ma Frame. Problème je n'arrive pas à le faire ...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jerome moliere
koni wrote:
Bonjour,
Comme le mentionne le titre je suis débutant en développement Java. Et j'ai actuellement un problème avec les composants Swing et leur manipulation. Je souhaite faire une fenetre contenant un menu. Chaque menu possède au moins un item. Le fait de cliquer sur un item aurait comme conséquence de changer le Panel qui s'affiche dans ma Frame. Problème je n'arrive pas à le faire ...
Une piste ? utiliser un carddlayout (metaphore du jeu de cartes) qui est faite pour
cela... cf tutorial et javadoc pour les details bon courage Jerome
-- Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003 http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
koni wrote:
Bonjour,
Comme le mentionne le titre je suis débutant en développement Java. Et
j'ai actuellement un problème avec les composants Swing et leur
manipulation. Je souhaite faire une fenetre contenant un menu.
Chaque menu possède au moins un item.
Le fait de cliquer sur un item aurait comme conséquence de changer le
Panel qui s'affiche dans ma Frame. Problème je n'arrive pas à le faire ...
Une piste ?
utiliser un carddlayout (metaphore du jeu de cartes) qui est faite pour
cela...
cf tutorial et javadoc pour les details
bon courage
Jerome
--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
Comme le mentionne le titre je suis débutant en développement Java. Et j'ai actuellement un problème avec les composants Swing et leur manipulation. Je souhaite faire une fenetre contenant un menu. Chaque menu possède au moins un item. Le fait de cliquer sur un item aurait comme conséquence de changer le Panel qui s'affiche dans ma Frame. Problème je n'arrive pas à le faire ...
Une piste ? utiliser un carddlayout (metaphore du jeu de cartes) qui est faite pour
cela... cf tutorial et javadoc pour les details bon courage Jerome
-- Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003 http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean1382212111941
koni
jerome moliere wrote:
koni wrote:
Bonjour,
Comme le mentionne le titre je suis débutant en développement Java. Et j'ai actuellement un problème avec les composants Swing et leur manipulation. Je souhaite faire une fenetre contenant un menu. Chaque menu possède au moins un item. Le fait de cliquer sur un item aurait comme conséquence de changer le Panel qui s'affiche dans ma Frame. Problème je n'arrive pas à le faire ...
Une piste ?
utiliser un carddlayout (metaphore du jeu de cartes) qui est faite pour cela... cf tutorial et javadoc pour les details bon courage Jerome
Merci en effet cela résout mon problème. Parcontre je me demande si il n'y a pas un moyen plus efficace que celui que j'ai trouvé pour faire connaitre le CardLayout a ma barre de menu. (classe ci dessous). En effet pour le moment je transmet la référence (la valeur?) du CardLayout et du Panel dont le layout est CardLayout en signature du constructeur de la barre de Menu. Je trouve pas çà très élégant d'autant plus que je dois faire une methode pour que l'écouter puisse agir sur ces objets.
Cordialement, koni
========================================================================= /* * Créé le 19 févr. 2004 * */ package chrono;
import javax.swing.*; import java.awt.*;
/** * @author koni * */ public class GUI extends JFrame{ private CardLayout gestionnaire; private JPanel panel;
public GUI(String titre) { //Constructeur setTitle(titre); this.setBounds(0,0,800,600);
Container Contenant = this.getContentPane(); JPanel panel = new JPanel(); CardLayout gestionnaire = new CardLayout(); panel.setLayout(gestionnaire); setJMenuBar(new BarreMenu(gestionnaire,panel)); // Creation Panneau Tache JPanel panneauTache = new JPanel(); panneauTache.setBackground(Color.BLUE); panel.add(panneauTache, "tache"); // Creation Panneau Projet JPanel panneauProjet = new JPanel(); panneauProjet.setBackground(Color.RED); panel.add(panneauProjet, "projet");
/* Constructeur */ public BarreMenu(CardLayout unGestio, JPanel unPanel) { JMenu menuProjet = new JMenu("Projet"); setPanel(unGestio, unPanel); //declaration des éléments du menu pajout = new JMenuItem("Ajouter"); pmodif = new JMenuItem("Modifier"); // ecouteur d'evenements du menu pajout.addActionListener(this) ; pmodif.addActionListener(this) ;
//ajout dans le menu menuProjet.add(pajout); menuProjet.add(pmodif);
JMenu menuTache = new JMenu("Tache"); //declaration des éléments du menu tajout = new JMenuItem("Ajouter"); // ecouteur d'evenements du menu tajout.addActionListener(this);
//ajout dans le menu menuTache.add(tajout);
JMenu menuJournee = new JMenu("Journee"); //declaration des éléments du menu jmodif = new JMenuItem("Modifier");
// ecouteur d'evenements du menu jmodif.addActionListener(this) ;
//ajout dans le menu menuJournee.add(jmodif);
// après on ajoute tout à la barre de menu this.add(menuProjet); this.add(menuTache); this.add(menuJournee); }
public void actionPerformed(ActionEvent e) /* procedure lancée lorsqu'un evenement se produit * traitement de cet evenement */ {
Object o = e.getSource() ; // On stock l'adresse du référent de l'objet déclenchant l'action
if( o.equals(pajout)) { // Ajout d'un projet // Il faut montrer le panneau adequat System.out.println("Ajout d un projet"); gestio.show(pano, "projet");
} else if (o.equals(pmodif)) { // Modification des projets System.out.println("Modification des projets"); //gestio.next(pano); gestio.show(pano, "projet"); } else if(o.equals(tajout)) { // Ajout d'une tache System.out.println("Ajout d une tache"); //gestio.next(pano); gestio.show(pano,"tache"); } else if(o.equals(jmodif)) { // Modification d'une journee System.out.println("Modification d une journee"); gestio.show(pano,"journee"); }
Comme le mentionne le titre je suis débutant en développement Java. Et
j'ai actuellement un problème avec les composants Swing et leur
manipulation. Je souhaite faire une fenetre contenant un menu.
Chaque menu possède au moins un item.
Le fait de cliquer sur un item aurait comme conséquence de changer le
Panel qui s'affiche dans ma Frame. Problème je n'arrive pas à le faire
...
Une piste ?
utiliser un carddlayout (metaphore du jeu de cartes) qui est faite pour
cela...
cf tutorial et javadoc pour les details
bon courage
Jerome
Merci en effet cela résout mon problème. Parcontre je me demande si il
n'y a pas un moyen plus efficace que celui que j'ai trouvé pour faire
connaitre le CardLayout a ma barre de menu. (classe ci dessous). En
effet pour le moment je transmet la référence (la valeur?) du CardLayout
et du Panel dont le layout est CardLayout en signature du constructeur
de la barre de Menu. Je trouve pas çà très élégant d'autant plus que je
dois faire une methode pour que l'écouter puisse agir sur ces objets.
Cordialement,
koni
========================================================================= /*
* Créé le 19 févr. 2004
*
*/
package chrono;
import javax.swing.*;
import java.awt.*;
/**
* @author koni
*
*/
public class GUI extends JFrame{
private CardLayout gestionnaire;
private JPanel panel;
public GUI(String titre) {
//Constructeur
setTitle(titre);
this.setBounds(0,0,800,600);
Container Contenant = this.getContentPane();
JPanel panel = new JPanel();
CardLayout gestionnaire = new CardLayout();
panel.setLayout(gestionnaire);
setJMenuBar(new BarreMenu(gestionnaire,panel));
// Creation Panneau Tache
JPanel panneauTache = new JPanel();
panneauTache.setBackground(Color.BLUE);
panel.add(panneauTache, "tache");
// Creation Panneau Projet
JPanel panneauProjet = new JPanel();
panneauProjet.setBackground(Color.RED);
panel.add(panneauProjet, "projet");
/* Constructeur
*/
public BarreMenu(CardLayout unGestio, JPanel unPanel)
{
JMenu menuProjet = new JMenu("Projet");
setPanel(unGestio, unPanel);
//declaration des éléments du menu
pajout = new JMenuItem("Ajouter");
pmodif = new JMenuItem("Modifier");
// ecouteur d'evenements du menu
pajout.addActionListener(this) ;
pmodif.addActionListener(this) ;
//ajout dans le menu
menuProjet.add(pajout);
menuProjet.add(pmodif);
JMenu menuTache = new JMenu("Tache");
//declaration des éléments du menu
tajout = new JMenuItem("Ajouter");
// ecouteur d'evenements du menu
tajout.addActionListener(this);
//ajout dans le menu
menuTache.add(tajout);
JMenu menuJournee = new JMenu("Journee");
//declaration des éléments du menu
jmodif = new JMenuItem("Modifier");
// ecouteur d'evenements du menu
jmodif.addActionListener(this) ;
//ajout dans le menu
menuJournee.add(jmodif);
// après on ajoute tout à la barre de menu
this.add(menuProjet);
this.add(menuTache);
this.add(menuJournee);
}
public void actionPerformed(ActionEvent e)
/* procedure lancée lorsqu'un evenement se produit
* traitement de cet evenement
*/
{
Object o = e.getSource() ; // On stock l'adresse du référent de
l'objet déclenchant l'action
if( o.equals(pajout))
{
// Ajout d'un projet
// Il faut montrer le panneau adequat
System.out.println("Ajout d un projet");
gestio.show(pano, "projet");
}
else
if (o.equals(pmodif)) {
// Modification des projets
System.out.println("Modification des projets");
//gestio.next(pano);
gestio.show(pano, "projet");
}
else if(o.equals(tajout)) {
// Ajout d'une tache
System.out.println("Ajout d une tache");
//gestio.next(pano);
gestio.show(pano,"tache");
}
else if(o.equals(jmodif)) {
// Modification d'une journee
System.out.println("Modification d une journee");
gestio.show(pano,"journee");
}
Comme le mentionne le titre je suis débutant en développement Java. Et j'ai actuellement un problème avec les composants Swing et leur manipulation. Je souhaite faire une fenetre contenant un menu. Chaque menu possède au moins un item. Le fait de cliquer sur un item aurait comme conséquence de changer le Panel qui s'affiche dans ma Frame. Problème je n'arrive pas à le faire ...
Une piste ?
utiliser un carddlayout (metaphore du jeu de cartes) qui est faite pour cela... cf tutorial et javadoc pour les details bon courage Jerome
Merci en effet cela résout mon problème. Parcontre je me demande si il n'y a pas un moyen plus efficace que celui que j'ai trouvé pour faire connaitre le CardLayout a ma barre de menu. (classe ci dessous). En effet pour le moment je transmet la référence (la valeur?) du CardLayout et du Panel dont le layout est CardLayout en signature du constructeur de la barre de Menu. Je trouve pas çà très élégant d'autant plus que je dois faire une methode pour que l'écouter puisse agir sur ces objets.
Cordialement, koni
========================================================================= /* * Créé le 19 févr. 2004 * */ package chrono;
import javax.swing.*; import java.awt.*;
/** * @author koni * */ public class GUI extends JFrame{ private CardLayout gestionnaire; private JPanel panel;
public GUI(String titre) { //Constructeur setTitle(titre); this.setBounds(0,0,800,600);
Container Contenant = this.getContentPane(); JPanel panel = new JPanel(); CardLayout gestionnaire = new CardLayout(); panel.setLayout(gestionnaire); setJMenuBar(new BarreMenu(gestionnaire,panel)); // Creation Panneau Tache JPanel panneauTache = new JPanel(); panneauTache.setBackground(Color.BLUE); panel.add(panneauTache, "tache"); // Creation Panneau Projet JPanel panneauProjet = new JPanel(); panneauProjet.setBackground(Color.RED); panel.add(panneauProjet, "projet");
/* Constructeur */ public BarreMenu(CardLayout unGestio, JPanel unPanel) { JMenu menuProjet = new JMenu("Projet"); setPanel(unGestio, unPanel); //declaration des éléments du menu pajout = new JMenuItem("Ajouter"); pmodif = new JMenuItem("Modifier"); // ecouteur d'evenements du menu pajout.addActionListener(this) ; pmodif.addActionListener(this) ;
//ajout dans le menu menuProjet.add(pajout); menuProjet.add(pmodif);
JMenu menuTache = new JMenu("Tache"); //declaration des éléments du menu tajout = new JMenuItem("Ajouter"); // ecouteur d'evenements du menu tajout.addActionListener(this);
//ajout dans le menu menuTache.add(tajout);
JMenu menuJournee = new JMenu("Journee"); //declaration des éléments du menu jmodif = new JMenuItem("Modifier");
// ecouteur d'evenements du menu jmodif.addActionListener(this) ;
//ajout dans le menu menuJournee.add(jmodif);
// après on ajoute tout à la barre de menu this.add(menuProjet); this.add(menuTache); this.add(menuJournee); }
public void actionPerformed(ActionEvent e) /* procedure lancée lorsqu'un evenement se produit * traitement de cet evenement */ {
Object o = e.getSource() ; // On stock l'adresse du référent de l'objet déclenchant l'action
if( o.equals(pajout)) { // Ajout d'un projet // Il faut montrer le panneau adequat System.out.println("Ajout d un projet"); gestio.show(pano, "projet");
} else if (o.equals(pmodif)) { // Modification des projets System.out.println("Modification des projets"); //gestio.next(pano); gestio.show(pano, "projet"); } else if(o.equals(tajout)) { // Ajout d'une tache System.out.println("Ajout d une tache"); //gestio.next(pano); gestio.show(pano,"tache"); } else if(o.equals(jmodif)) { // Modification d'une journee System.out.println("Modification d une journee"); gestio.show(pano,"journee"); }