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

Agents de placement/Fenêtres Java Discussion :

[Jdialog] Comment deplacer un jdialog undecorated ?


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut [Jdialog] Comment deplacer un jdialog undecorated ?
    salut,

    une exigence a fait que mes jdialog soient toutes undecorated et ce par ce que la barre des titres doit être personnalisée , bref tout marche nickel sauf que mes jdialog maintenanat sont presque "figées" dans un seul endroit de l'ecran et je veux les rendre deplacable comme une jdialog classque afin que l'utilisateur puisse la deplacer al ou il veut

    je sais qu'il faudra ajouter un listner mais lequel et comment le faire car je ne suis pas trop familier avec ?

    merci

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Tu devrais pouvoir t'en sortir avec un MouseMotionListener

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    facile a dire mais comment ?
    tu as un exemple stp
    merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    j'ai pris en consideration ce que tu as dit et j'ai ajoute aussi ces deux methode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    public void mouseMoved(MouseEvent e )
    	  {
    		  setLocation(getLocation().x , getLocation().y);
    	  }
     public void mouseDragged(MouseEvent e )
    	  {
    		  setLocation(getLocation().x , getLocation().y);
    	  }
    je sais qu'elles sont indispensables mais je crosi que le traitement que j'ai ajouté ne répond pas a mon besoin pour faiure deplacer la fenetre al oiu je veux

    comment el corriger .?

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 914
    Billets dans le blog
    54
    Par défaut
    C'est un peu simpliste ce que tu as fait ; il te faut un point de reference :

    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
    /** {@inheritDoc}
    */
    public void mouseClicked(MouseEvent event) {
      // Set ref point.
      refPoint = new Point(event.getX(), event.getY());
    }
     
    /** {@inheritDoc}
    */
    public void mouseDragged(MouseEvent event) {
      // Drag started outside the dialog.
      // Set ref point.
      if (refPoint == null) {
        refPoint = new Point(event.getX(), event.getY());
      }
      // Dialog being dragged.
      else {
        // Compute movement.
        int dx = event.getX() - refPoint.x;
        int dy = event.getY() - refPoint.Y;
        /** @todo try to keep the dialog within the screen boundaries. */
        // Apply movement to dialog.
        dialog.setLocation(dialog.getX() + dx ,  dialog.getY() + dy);
        // Update ref point.
        refPoint.x = event.getX();
        refPoint.y = event.getY();
      }
    }
     
    /** {@inheritDoc}
    */
    public void mouseReleased(MouseEvent event) {
      // Release ref point for next drag.
      refPoint = null;
    }
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Moi je remplacerais juste mouseClicked par mousePressed, mais sinon je suis tout à fait d'accord avec bouye.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    salut,

    j'ai essayé le code que tu m'a suggéré mais toujours rien je comprends pas:

    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
     
     
    public class ClockWindow extends JDialog implements ActionListener,MouseMotionListener
    {
      public static Point refPoint = null ;
     
      public void mouseMoved(MouseEvent event) {
    	  // Set ref point.
    	  refPoint = new Point(event.getX(), event.getY());
    	} 
    	/** {@inheritDoc}
            */
    	public void mouseClicked(MouseEvent event) {
    	  // Set ref point.
    	  refPoint = new Point(event.getX(), event.getY());
    	}
     
    	/** {@inheritDoc}
            */
    	public void mouseDragged(MouseEvent event) {
    	  // Drag started outside the dialog.
    	  // Set ref point.
    	  if (refPoint == null) {
    	    refPoint = new Point(event.getX(), event.getY());
    	  }
    	  // Dialog being dragged.
    	  else {
    	    // Compute movement.
    	    int dx = event.getX() - refPoint.x;
    	    int dy = event.getY() - refPoint.y;
    	    /** @todo try to keep the dialog within the screen boundaries. */
    	    // Apply movement to dialog.
    	    this.setLocation(this.getX() + dx ,  this.getY() + dy);
    	    // Update ref point.
    	    refPoint.x = event.getX();
    	    refPoint.y = event.getY();
    	  }
    	}
     
    	/** {@inheritDoc}
            */
    	public void mouseReleased(MouseEvent event) {
    	  // Release ref point for next drag.
    	  refPoint = null;
    	}
     
    ... // mon code

    la jdialog ( undecorated je le rapelle ) s'affiche comme avant mais elle est toujours figée et je en peux pas la deplacer

    je suis vraiement bloqué

  8. #8
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Il faut enlever la méthode mouseMoved, et remplacer mouseClicked par mousePressed. Sinon, il attend que tu aies relaché la souris pour initialiser le refPoint.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    on peut pas omettre mouseMoved() elle doit etre presente puisque la classe impelemnte mousemotionlistener !, cependant je l'ai laiissé avec aucun traitement dedans et j'ai remplacé mousepressed mais rien ne se passe

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    qualqu'un sait il ou est l'anomalie ;( ?
    merci

  11. #11
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 914
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par xavlours
    Moi je remplacerais juste mouseClicked par mousePressed, mais sinon je suis tout à fait d'accord avec bouye.
    Oups elle m'avait echappee celle-la a la relecture. Merci

    Citation Envoyé par jlassiramzy
    quelqu'un sait il ou est l'anomalie ;( ?
    Je dirai affecte un glasspane (un JPanel tout simplement) sur ton dialogue sur lequel tu ajoute ce listener et rend ce glasspane visible (pour intercepter les evenements justement). Ou ajoute le listener au contentpane du dialogue mais les evenements souris seront probablement interceptes par les composants contenus dans ce meme dialogue.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    ok j'y vais

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    Voila ce que j'ai actuellement comme code et je comprends pas le comportement bizarer de la fenetre qui disparait de l'ecran


    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
     
     
     
     
    import java.awt.Dimension;
    import java.awt.Point;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionListener;
     
    import javax.swing.JDialog;
    import javax.swing.JPanel;
     
    public class modialog  extends JDialog  {
     
     
    	public static Point refPoint = null ;
    	public static int X  ;
    	public static int Y  ; 
     
    		static class MouseDrag implements MouseMotionListener
     
    		{
    			private int X ;
    			private int Y ;
    			public  modialog m_modialog;
     
    			public MouseDrag(modialog i_modialog)
    			{
    				m_modialog = i_modialog; 
    				X = modialog.X;
    				Y = modialog.Y;			
     
    			}
     
    			 public void mouseMoved(MouseEvent event) {
    				  // Set ref point.
    				 // refPoint = new Point(event.getX(), event.getY());
    				  //System.out.println(event.getX()+ " "+ event.getY());
    				} 
     
    				/** {@inheritDoc}
                                    */
    				public void mousePressed(MouseEvent event) {
    				  // Set ref point.
    				 // refPoint = new Point(event.getX(), event.getY());
    				  //System.out.println(event.getX()+ " "+ event.getY());
    				}	
     
    				/** {@inheritDoc}
                                    */
    				public void mouseDragged(MouseEvent event) {
    				  // Drag started outside the dialog.
    				  // Set ref point.
    				  if (refPoint == null) {
    				    refPoint = new Point(event.getX(), event.getY());
    				  }
    				  // Dialog being dragged.
    				  else {
    				    // Compute movement.
    				    int dx = event.getX() - refPoint.x;
    				    int dy = event.getY() - refPoint.y;
    				    System.out.println(dx +" "+ dy);
    				    /** @todo try to keep the dialog within the screen boundaries. */
    				    // Apply movement to dialog.
    				    m_modialog.setLocation( X + dx ,Y + dy);
    				    // Update ref point.
    				    refPoint.x = event.getX();
    				    refPoint.y = event.getY();
    				    System.out.println( refPoint.x +" "+ refPoint.y );
     
    				  }
    				}
     
    				/** {@inheritDoc}
                                    */
    				public void mouseReleased(MouseEvent event) {
    				  // Release ref point for next drag.
    				  refPoint = null;
    				}
     
    		}
    	/**
             * 
             */
    	public modialog() {
    		// TODO Auto-generated constructor stub	
    		setLocationRelativeTo(getParent());
    		addMouseMotionListener(new MouseDrag(this));
    		setUndecorated(true);
    		JPanel pn = new JPanel();
    		pn.setPreferredSize(new Dimension(400,400));
    		add(pn);
         	pack();
    		setVisible(true);
     
     
    	}
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		new modialog();
     
    	}
     
    }

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    Quelqu'un a t il une idee svp ?

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    j'ai essayé mais en vain! quelu'un peut il aider svp
    merci

Discussions similaires

  1. [JDialog] Comment le fermer
    Par donnadieujulien dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 17/07/2008, 00h56
  2. comment accéder à un JDialog à partir d'un JFrame
    Par polonain2 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 15/05/2008, 19h31
  3. Comment ouvrir un JDialog à partir d'une fenetre principale
    Par une_tite_question dans le forum Agents de placement/Fenêtres
    Réponses: 15
    Dernier message: 24/04/2008, 18h54
  4. [JDialog] comment supprimer entièrement une fenêtre ?
    Par RR instinct dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 19/06/2006, 15h50
  5. [JDialog]comment effectuer un setsize (ou pack) sans repaint
    Par hakeric dans le forum Agents de placement/Fenêtres
    Réponses: 17
    Dernier message: 20/03/2006, 11h18

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