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

AWT/Swing Java Discussion :

Translation de composants


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de yakanet
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut Translation de composants
    Bonjour,
    Voila je suis en train de réaliser un éditeur de fênetre graphique java.
    Je prend un composant java (un JButton par exemple) je le place sur un JPanel et je peux le retailler ou le déplacer.
    J'utilise un MouseMotionListener sur le composant pour le retaillage et le déplacement.
    Le retaillage fonctionne parfaitement, alors que le déplacement pose un réel problème.

    Voici un extraint du 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
    public void mouseDragged(MouseEvent e) {
    	int decalageX=Constantes.getMagnetisme(e.getX());
    	int decalageY=Constantes.getMagnetisme(e.getY());
     
    	switch(mouvement){
    	case MVT_TRANSLATION:
    		setLocation(decalageX, decalageY);
    		break;
     
    	case MVT_RESIZE:
    		setSize(decalageX, decalageY);
    		composant.setSize(decalageX, decalageY);	
    		break;
    	}
    }
    Rmq :
    getMagnetisme renvoi la valeur arrondi pour un effet de magnetisme.
    La classe est un JPanel qui contient un JComponent composant

  2. #2
    Membre éprouvé Avatar de yakanet
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    Voila j'ai résolu mon problème, je le poste pour ceux qui voudraient savoir (et je suis sur qu'ils sont nombreux mdr )
    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
     
    public void mouseDragged(MouseEvent e) {
    	int decalageX=Constantes.getMagnetisme(e.getX());
    	int decalageY=Constantes.getMagnetisme(e.getY());
     
    	switch(mouvement){
    	case MVT_TRANSLATION:
    		//setLocation(decalageX, decalageY);
    		setLocation(
    					Constantes.getMagnetisme(-m_x + decalageX + getX()),
    					Constantes.getMagnetisme(-m_y + decalageY + getY())
    		);
    		break;
     
    	case MVT_RESIZE:
    		setSize(decalageX, decalageY);
    		composant.setSize(decalageX, decalageY);	
    		break;
    	}
    }
    Rmq:
    m_x est la position initiale de la souris (posX)
    m_y est la position initiale de la souris (posY)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/06/2002, 00h15
  2. Existe t'il un composant permettant de jouer un son wav?
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/06/2002, 14h10
  3. Redéfinir l'événement OnExit de mon composant TEditFloat
    Par Seb des Monts dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/06/2002, 16h10
  4. Installer ses composants
    Par Geronimo dans le forum C++Builder
    Réponses: 14
    Dernier message: 18/06/2002, 14h51
  5. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/05/2002, 16h35

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