Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1476 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  probleme avec JPopupMenu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme avec JPopupMenu

n°348599
veryfree
Posté le 31-03-2003 à 21:22:31  profilanswer
 


voila mon probleme: lorsque je clic droit avec la souris dans mon appli java un popupmenu apparait le probleme c'est que lorsque je suis trop bas ds l ecran, celui au lieu de "s'adapter" et de  s afficher vers le haut de facon a etre totalement visible continu de s afficher en bas
ce qui fait qu on ne vois qu une partie du menu ce qui embetant;meme probleme lorsqu on est trop a droite de l ecran :/
 
vous savez comment faire pour regler ce probleme?

mood
Publicité
Posté le 31-03-2003 à 21:22:31  profilanswer
 

n°348613
bobuse
Posté le 31-03-2003 à 21:37:02  profilanswer
 

C'est bizarre, je viens d'essayer avec un JMenu et un JToolTip (J'avais que ca sous la main) et il s'adapte bien :/


---------------
get amaroK plugin
n°348624
veryfree
Posté le 31-03-2003 à 22:14:44  profilanswer
 

bobuse a écrit :

C'est bizarre, je viens d'essayer avec un JMenu et un JToolTip (J'avais que ca sous la main) et il s'adapte bien :/


 
c un jpopupmenu hein :)
 
bon ben maintenant ca marche je balance le code ca peux tj servir a quelqu un:
 

Code :
  1. public void processMouseEvent(MouseEvent mouseevent)
  2.     {
  3.         if(mouseevent.isPopupTrigger())
  4.         {
  5.        
  6.   int x = mouseevent.getX();
  7.   int y = mouseevent.getY();
  8.   Point location = getLocationOnScreen();
  9.   popupSize  = popup.getSize();
  10.   double diffx=screenDimension.getWidth() - (location.x + x )- popupSize.width;
  11.                 double diffy=screenDimension.getHeight() - (location.y + y ) - popupSize.height;
  12.        
  13.         if (diffx<0)
  14.         {
  15.           x -= popupSize.width;
  16.         }
  17.         if (diffy<0)
  18.         {
  19.           y -= popupSize.height;
  20.         }
  21.          popup.show(this, x , y);
  22.         }
  23.         else
  24.         {
  25.             super.processMouseEvent(mouseevent);
  26.         }
  27.     }


Message édité par veryfree le 31-03-2003 à 22:43:57
n°452078
veryfree
Posté le 09-07-2003 à 13:43:33  profilanswer
 

voila un truc que j ai trouver :
 
http://faqjava.developpez.com/?pag [...] hors_ecran
 

Lorsque l'on utilise la méthode show(java.awt.Component, int, int) pour afficher un javax.swing.JPopupMenu, les coordonnées correspondent au coin haut-gauche du menu. Si ces coordonnées sont trop près du bord de l'écran, une partie du menu est alors cachée. Nous allons donc surcharger la méthode show() pour que les coordonnées soient corrigées si le message est trop proche du bord de l'écran.


Code :
  1. class MonPopupMenu extends JPopupMenu {
  2.         public void show(Component invoker, int x, int y) {
  3.                 /* Dimension de l'écran */
  4.                 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  5.                 /* Dimension du Menu popup */
  6.                 Dimension popupSize = this.getPreferredSize();
  7.                 /* Position en x,y du popup à l'écran (pour le .show) */
  8.                 double xPopupEcran = invoker.getLocationOnScreen().getX() + x;
  9.                 double yPopupEcran = invoker.getLocationOnScreen().getY() + y;
  10.                
  11.                 /* Si le popup déborde de l'écran sur la droite on décale sur x */
  12.                 if ((xPopupEcran + popupSize.getWidth()) > screenSize.getWidth()) {
  13.                         x = x - (int)popupSize.getWidth();
  14.                 }
  15.                
  16.                 /* Si le popup déborde de l'écran sur le bas on décale sur y */
  17.                 if ((yPopupEcran + popupSize.getHeight()) > screenSize.getHeight()) {
  18.                         y = y - (int)popupSize.getHeight();
  19.                 }
  20.                
  21.                 /* On affiche le popup à l'endroit judicieusement calculé :) */
  22.                 super.show(invoker, x, y);
  23.         }
  24. }

 
 
 
Ce bug a été résolu dans la version 1.4 de l'API. Le correctif n'est pas nécessaire.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  probleme avec JPopupMenu

 

Sujets relatifs
[C/gcc] Problème à la compilation loucheproblème tableau multidimensionnel
[shell]obtenir la date -1 (reconvertit en probleme de awk ;) )[PHP] probleme avec la fonction date()
[C] Problème de getc dans une bouclepop-up problème
[Collection] Compilation ok mais execution probleme![PHP] Problème simple de fonctions
Probleme builder 5: dll et windows XPProblème de téléchargement du JDK1.4 de SUN
Plus de sujets relatifs à : probleme avec JPopupMenu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR