IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

[JMenu] un JMenu qui s'incruste


Sujet :

Composants Java

  1. #1
    Membre confirmé Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Par défaut [JMenu] un JMenu qui s'incruste
    bonjour

    j'ai une JFrame qui contient un JPanel et une JMenuBar. La JMenuBar est composee de JMenu, composés de JMenuItem.
    A chaque fois que je clic sur un JMenu, la liste de items apparait mais elle reste dessinee sur le JPanel lorsque que la souris la quitte, alors qu'elle est sensee disparaitre.
    Y a t il un moyen de regler ca ?
    merci.

  2. #2
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut
    Le fonctionnement par defaut des JMenu est : une fois que la liste des items est deroulee, elle disparait par un click sur un autre composant de la fenetre.
    Qu'est ce que tu entends par
    Citation Envoyé par al85
    elle reste dessinee sur le JPanel lorsque que la souris la quitte, alors qu'elle est sensee disparaitre.
    ?
    Quel est le probleme ? Le menu ne disparait pas lorsque tu cliques avec la souris en dehors du JMenu ? ou alors tu souhaiterais changer le comportement du JMenu pour que la liste de items se cache lorsque la souris ne survole plus le JMenu ?

  3. #3
    Membre confirmé Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Par défaut
    Ce que je veux dire c'est que quand je clic sur le menu, la liste des items apparait; jusque la tout va bien. Mais je peux cliquer ou je veux apres, la liste reste toujours affichée, avec parfois un petit decalage. Comme si l'écran n'est plus rafraichi a cet endroit.

    J'ai fait une capture d'une partie de la fenetre pour que tu vois ce que j'ai.
    http://alexv20.free.fr/img/ab.jpg

    merci

  4. #4
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut
    C'est peut-etre a cause d'ActionListener que tu aurais ajoute sur le menu et qui bloquerait la fermeture du menu ...
    Le mieux (comme souvent) c'est que tu postes ton code ... au moins les parties qui nous interessent ...

  5. #5
    Membre confirmé Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Par défaut
    je n'ai aucun action listener defini pour le moment.
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    import javax.swing.*;
    import java.awt.*;
    import java.awt.Color;
     
    public class AbaloneFrame extends JFrame{
     
    	public AbaloneFrame(){
    		setTitle("Abalone");
    		setSize(500,500);
    		setIconImage(Toolkit.getDefaultToolkit().getImage("plateau.jpg"));
     
    		JMenuBar menuBar = new JMenuBar();
    		this.setJMenuBar(menuBar);
     
    		JMenu jeu = new JMenu("Jeu");
    		JMenuItem nouveau = new JMenuItem("Nouveau");
    		JMenuItem sauver = new JMenuItem("Enregistrer");
    		JMenuItem charge = new JMenuItem("Charger");
    		JMenuItem quitter = new JMenuItem("Quitter");
    		jeu.add(nouveau);
    		jeu.add(sauver);
    		jeu.add(charge);
    		jeu.addSeparator();
    		jeu.add(quitter);
    		menuBar.add(jeu);
     
    		JMenu aide = new JMenu("?");
    		JMenuItem apropos = new JMenuItem("A Propos");
    		JMenuItem regles = new JMenuItem("Règles");
    		aide.add(apropos);
    		aide.add(regles);
    		menuBar.add(aide);	
     
    		getContentPane().add(new AbalonePanel());
    	}
     
    	public static void main (String[]args){
    		AbaloneFrame frame = new AbaloneFrame();
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.show();
    		frame.setResizable(false);
    	}
    }
     
    class AbalonePanel extends JPanel{
     
    	Polygon p;
    	Plateau pl;
     
    	public AbalonePanel(){
    		pl = new Plateau();
    		pl.initialisation();
    	}
     
    	public void paintComponent(Graphics g){
    		int []x = {120,380,430,380,120,70};
    		int []y = {80,80,250,420,420,250};
    		p = new Polygon(x,y,x.length);
    		g.setColor(Color.black);
    		//g.drawPolygon(p);
     
    		pl.dessiner(g);		
    	}
    }

  6. #6
    Membre expérimenté
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Par défaut
    Le probleme vient de ton implementation de la methode paintComponent.
    Avec le code suivant, le probleme de menu disparait. J'ai juste ajoute un appel a paintComponent() de JPanel. J'ai du mettre des parties de code en commentaire puisqu'il manque des classes ... donc a voir si ca ne te pose pas de probleme ailleurs ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    public class AbaloneFrame extends JFrame {
    	public AbaloneFrame() {
    		setTitle("Abalone");
    		setSize(500, 500);
    		setIconImage(Toolkit.getDefaultToolkit().getImage("plateau.jpg"));
     
    		JMenuBar menuBar = new JMenuBar();
    		this.setJMenuBar(menuBar);
     
    		JMenu jeu = new JMenu("Jeu");
    		JMenuItem nouveau = new JMenuItem("Nouveau");
    		JMenuItem sauver = new JMenuItem("Enregistrer");
    		JMenuItem charge = new JMenuItem("Charger");
    		JMenuItem quitter = new JMenuItem("Quitter");
    		jeu.add(nouveau);
    		jeu.add(sauver);
    		jeu.add(charge);
    		jeu.addSeparator();
    		jeu.add(quitter);
    		menuBar.add(jeu);
     
    		JMenu aide = new JMenu("?");
    		JMenuItem apropos = new JMenuItem("A Propos");
    		JMenuItem regles = new JMenuItem("Règles");
    		aide.add(apropos);
    		aide.add(regles);
    		menuBar.add(aide);
     
    		getContentPane().add(new AbalonePanel());
    	}
     
    	public static void main(String[] args) {
    		AbaloneFrame frame = new AbaloneFrame();
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.show();
    		frame.setResizable(false);
    	}
    } ///:-
     
    class AbalonePanel extends JPanel {
    	Polygon p;
    	//Plateau pl;
     
    	public AbalonePanel() {
    		// pl = new Plateau();
    		//pl.initialisation();
    	}
     
    	public void paintComponent(Graphics g) {
    		super.paintComponent(g);
    		int[] x = { 120, 380, 430, 380, 120, 70 };
    		int[] y = { 80, 80, 250, 420, 420, 250 };
    		p = new Polygon(x, y, x.length);
    		g.setColor(Color.black);
    		g.drawPolygon(p);
     
    		//pl.dessiner(g); 
    	}
    } ///:-
    sylvain_2020

  7. #7
    Membre confirmé Avatar de al85
    Profil pro
    Inscrit en
    Février 2004
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 158
    Par défaut
    merci, ca marche impec !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer taille police dans un JMenu
    Par TomPouce05 dans le forum Composants
    Réponses: 11
    Dernier message: 14/09/2015, 10h13
  2. Des spyware qui s'incrustent
    Par Julien1985 dans le forum Sécurité
    Réponses: 0
    Dernier message: 09/11/2007, 21h16
  3. GridBagConstraints et Jmenu qui s'affiche en dessous
    Par dr23fr dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/06/2006, 16h51
  4. [JMenu] Probleme Des Evenements du clavier vers les composants des
    Par Nadia_81 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 05/06/2005, 23h14
  5. [JMENU] Icone dans un JMenu
    Par stefluc dans le forum Composants
    Réponses: 2
    Dernier message: 12/04/2005, 00h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo