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

avec Java Discussion :

Créer une barre de titre en Java


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 24
    Points
    24
    Par défaut Créer une barre de titre en Java
    bonjour,
    je suis un petit nouveau en programmation java et je suis en train de créer un logiciel et par commodité j'ai choisi d'enlever les bordures grâce à setUndecolorated(true) et là je suis confronté au problème de barre de titre. donc comment définir une zone dans laquelle déplacer la fenêtre. merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ben c'est un peu le but des décorations :/ Pourquoi les retirer si c'est pour, à la main, refaire le même travail?

    Tu peux bien sur tapper un composant quelconque (jpanel, jbutton, jlabel, ...) dans ta frame et jouer sur les drag listener pour détecter le déplacement bouton appuyé, ensuite calculer les coordonées à l'écran et déplacer ta fenêtre, mais c'est beaucoup d'emmerdes. D'autant que l'utilisateur s'attends probablement à un layout "classique" pour la barre de titre et ne pensera pas que le machin que tu propose permet de déplacer.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 24
    Points
    24
    Par défaut
    merci pour l'intervention vous avez parler d'utiliser drag listener je voudrai svp un ptit exemple d'utilisation merci

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    Tiens, tu peux utiliser ça pour commencer :

    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
     
    /**
     * Cette classe permet de mettre en place un système de draggage pour le Component passé en paramètre
     */
    public class DraggageSystem implements MouseListener, MouseMotionListener{
        private int x0 = 0;//décalage pour le drag&drop
        private int y0 = 0;//décalage pour le drag&drop
        private Component component;
     
        /** Permet de mettre en place un système de draggage pour le Component passé en paramètre **/
        public static void createDraggageSystem(Component c) {
            DraggageSystem ds = new DraggageSystem(c);
            c.addMouseListener(ds);
            c.addMouseMotionListener(ds);
        }
        private DraggageSystem(Component c) {
            component = c;
        }
     
        @Override
        public void mouseDragged(MouseEvent e) {
            int x = component.getX();
            int y = component.getY();
            component.setLocation(x + e.getX() - x0, y + e.getY() - y0);
        }
     
        @Override
        public void mouseMoved(MouseEvent e) {
        }
     
        @Override
        public void mouseClicked(MouseEvent e) {
        }
     
        @Override
        public void mousePressed(MouseEvent e) {
            x0 = e.getX();
            y0 = e.getY();
        }
     
        @Override
        public void mouseReleased(MouseEvent e) {
        }
     
        @Override
        public void mouseEntered(MouseEvent e) {
        }
     
        @Override
        public void mouseExited(MouseEvent e) {
        }
     
    }
    Tu peux adapter à ta sauce en fonction de tes besoins, mais en gros ça permet de rendre un composant "draggable". Tu fais ça sur ta fenêtre pour commencer. Ensuite, tu utilises dispatchEvent pour que le draggage du contentPane de ta fenêtre soit répercuté sur la fenêtre elle-même.

    Tu peux éventuellement utiliser ce listener :

    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
    /**
     * Ce listener permet de transférer les events reçu par un composant fils à son container parent.
     */
    public class DispatchMouseToParent implements MouseMotionListener, MouseListener, MouseWheelListener {
     
        @Override
        public void mouseMoved(MouseEvent e) {
            dispatchEventToParent(e);
        }
        public void mouseDragged(MouseEvent e) {
            dispatchEventToParent(e);
        }
     
        public void mouseClicked(MouseEvent e) {
            dispatchEventToParent(e);
        }
        public void mousePressed(MouseEvent e) {
            dispatchEventToParent(e);
        }
        public void mouseReleased(MouseEvent e) {
            dispatchEventToParent(e);
        }
        public void mouseEntered(MouseEvent e) {}
        public void mouseExited(MouseEvent e) {}
     
        public void mouseWheelMoved(MouseWheelEvent e) {
            dispatchEventToParent(e);
        }
     
        private void dispatchEventToParent(MouseEvent e) {
            java.awt.Point P = e.getComponent().getLocation();
            e.translatePoint(P.x, P.y);
            if(e.getComponent()!=null) e.getComponent().getParent().dispatchEvent(e);
        }
     
    }
    Tu peux généraliser le procédé pour d'autres composants.

    Bonne chance

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 24
    Points
    24
    Par défaut
    merci beaucoup pour votre intervention j'ai resolu le problème avec un simple mouselistener et un mousemotionlistener sur le panel que jai appelé ¦ panelBarreTitre et dans mousedragged je fait un setlocation de la jframe

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

Discussions similaires

  1. [DEV] créer une barre de menu en java style mac os X
    Par didi dans le forum Développement OS X
    Réponses: 11
    Dernier message: 31/05/2008, 00h16
  2. [JDialog] Avoir une barre de titre plus fine
    Par nicolas.pied dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 06/01/2006, 18h42
  3. [JDOM] Créer une variable xml directement dans java
    Par Tigrounette dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 18/12/2005, 14h21
  4. créer une barre de navigation déroulante aide
    Par max45 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/11/2005, 20h57
  5. Créer une barre de progression sous Vba ??
    Par Deejoh dans le forum Général VBA
    Réponses: 7
    Dernier message: 17/10/2005, 15h05

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