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 :

Dessin d'une JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 6
    Par défaut Dessin d'une JFrame
    Bonjour, mon problème peut paraitre tordu mais je voudrais savoir s'il est possible de forcer le dessin d'une JFrame même si elle doit être normalement cachée par une autre fenêtre Windows par exemple. En gros je veux que ma fenêtre soit toujours visible même si elle n'a pas le focus.
    J'espère que je suis assez clair.

    J'ai réussi à faire un truc du genre en C++ en redéfinissant la méthode OnEraseBkgnd d'une CDialog mais je ne trouve pas d'équivelent en java.

    D'avance merci

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    Merci de bien expliquer votre idée pour te repondre

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 6
    Par défaut
    En fait je veux faire une sorte de curseur simulé (un Jframe avec une apparence de curseur quelconque qui transmet des clic et des appuis touche sous elle).
    Donc il faut que mon image de curseur soir au dessus de toutes les fenetres Windows affichées mais elle ne doit pas avoir le focus pour transmettre les evenements souris aux fenetres sous l'image sans avoir à récupérer le focus de ces fenetres au préalable (au risque de cacher ma "JFrame curseur")
    Donc je veux toujours dessiner ma JFrame curseur quel que soit son état.

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Une chose est sûr... ça va être très très difficile d'envoyer les événements souris à d'autres applications que le programme java lui-même...

    Sous windows, c'est le genre de chose qui est transmis via des messages systèmes, générés habituellement par windows.

    En Delphi, on écrit par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(handle, WM_LBUTTONDOWN, 0, 0);
    Mais il n'y a aucun équivalent en java...

    Par contre, en java, on peut faire setAlwaysOnTop sur une JFrame...


  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 6
    Par défaut
    Avec le Robot de java, on peut envoyer des évènements où on veut il me semble non ?
    D'ailleurs je pourrais très bien m'en sortir avec ça sauf que je dois avoir le focus sur la fenetre qui doit recevoir le clic, ce qui m'oblige à enlever le focus de mon curseur simulé.

    Curseur simulé au dessus des fenetres windows
    Recuperation du focus sur une fenetre (le curseur simulé disparait)
    Envoi de l'évènement curseur
    Réaffichage au premier plan du curseur simulé

    Cette méthode "marche" sauf que ma fenêtre 'curseur simulé' va clignoter si on fait plein de clic à la suite...

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par petitpepito Voir le message
    Avec le Robot de java, on peut envoyer des évènements où on veut il me semble non ?
    On peut déplacer la souris en xy et faire un clic, mais cela impose de connaitre les coordonnées et les dimensions de la fenêtre cible... pour une jframe "curseur" ça peut ptêtre le faire mais c'est un coup de bol

    concernant les événements en tout cas, je pense qu'il y aura pas mal de problème. Une JFrame qui passe par dessus une autre fenêtre génèrera des messages "WM_HIDED" ou qqchose du genre en direction de l'appli qui est survolée, mais sûrement pas de message "WM_MOUSEMOVE". Ce n'est pas le même comportement qu'une vraie souris

    Enfin cnest que mon avis... Ptêtre que j'ai mal compris

    PS: sinon regarde du côté de setAlwaysOnTop(true) sur les jframe (Java1.5+). ça les met en mode "toujours au dessus"

Discussions similaires

  1. Dessiner sur le Graphics d'une JFrame
    Par magikk dans le forum Débuter
    Réponses: 3
    Dernier message: 23/04/2010, 15h53
  2. Problèmes de dessin de ligne dans une JFrame .
    Par Pragmateek dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 24/03/2008, 16h11
  3. Maximiser une JFrame
    Par harold63 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 02/06/2004, 13h19
  4. Faire une JFrame avec LookAndFeel
    Par aburner dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/12/2003, 08h54
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

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