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 :

[debutant] equivalent Whatthis sous swing


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut [debutant] equivalent Whatthis sous swing
    J'essaye de trouver un équivalent au WhatThis : cette méthode consiste à afficher un curseur en forme de flêche avec un '?' ( via un raccourci clavier CTRL+F1). Si le client clique sur un objets (JButton, etc) alors s'affiche un bulle d'aide associé à l'objet (et plus complète qu'un simple tooltip).

    Le WhatThis se différencie du tooltip : le tooltip s'affiche toujours quand le client passe la souris dessus, tandis que le WhatThis nécessite de passer d'abord dans ce mode ... avant d'afficher l'information associé.

    Ca existe le WhatThis sous Java/Swing ?

    Merci
    Ami

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Il va falloir te le farcir à la main, rien n'est fourni de base pour ceci.

    Grosso modo, il te faut un bouton (ou un toggle) qui permet d'effectuer le changemenet d'état (typiquement une variable booléenne)
    A ce moment tu change le curseur de ta souris avec la méthode setCursor de ta JFrame
    Et puis ensuite amuse toi avec un mouseListener faisant apparaître une JWindow contenant ce que tu veux
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Je ne trouvais rien a ce sujet. Bon je vais retirer cette possibilité dans l'application.

    Merci
    Ami

  4. #4
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Tu as aussi la méthode SwingUtilities.getDeepestComponentAt() qui, alliée à un GlassPane, peut être très utile.

    Ensuite, en stockant les correspondances composant-action d'aide dans une map, ça ira tout seul.

    Le plus gros du boulot, c'est surtout d'écrire l'aide. Le reste est quand même assez rapide.
    "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.

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 844
    Points
    22 844
    Billets dans le blog
    51
    Par défaut
    Ce n'est pas tout a fait vrai, cette fonctionalite existe dans JavaHelp quoiqu'elle ne soit pas simple a mettre en place je trouve. En plus JavaHelp ne fait toujours pas partie des classe core (inadmissible quand le JRE est suppose etre la partie cliente et faire tourner des applications de bureau).

    Il est alors possible de creer un objet implementant a la fois l'interface Action et etendant CSH.DisplayHelpAfterTracking (cette classe de JavaHelp implemente ActionListener) pour creer des boutons et aurtres menus d'aide contextuelle. Bon apres... il faut aussi se dem@#$#@ avec la maniere dont JavaHelp fonctionne (HelpSet, HelpBroker, help map, etc...).
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par bouye
    Ce n'est pas tout a fait vrai, cette fonctionalite existe dans JavaHelp quoiqu'elle ne soit pas simple a mettre en place je trouve...
    Si vous avez des exemples, moi BIG débutant, je suis intéressé avec ce que vous avez réussi à mettre en place.

    Merci pour l'indice. Je vais réviser ma décision si je trouve des exemples.

    Ami

  7. #7
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 838
    Points : 22 844
    Points
    22 844
    Billets dans le blog
    51
    Par défaut
    Citation Envoyé par albmi
    moi BIG débutant
    C'est bien, donc comme tous les etudiant tu as tout a fait l'habitude de lire de la documentation et de faire des recherches par toi meme. Voila qui va faciliter les choses........

    Voici un exemple de squelette d'une telle action.

    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
    import java.awt.*;
    import java.awt.event.*;
    import java.beans.*;
    import java.util.*;
    import javax.help.*;
    import javax.swing.*;
    
    /** Creates a context sensitive action. 
     * <br>Such action may be re-used to create buttons and menuitems.
     */
    public class ContextHelpAction
          extends CSH.DisplayHelpAfterTracking implements Action {
        /** Map of values.
         */
        private java.util.Map<String, Object> propertyMap = new HashMap<String, Object>();
    
        /** Fire events.
         */
        private PropertyChangeSupport support = new PropertyChangeSupport(this);
    
        /** Creates a new instance.
         * @param broker The help broker.
         */
        public ContextHelpAction(HelpBroker broker) {
          super(broker);
          putValue("enabled", true);
          // We put an help topic onto this action as well.
          // Be careful though, this property may not be properly caried over to children buttons by the default action=>button configuration method.
          // We may need to do :
          // JButton child1 = toolBar.add(contextHelpAction);
          // child1.putClientProperty("HelpID", contextHelpAction.getValue("HelpID"));      
          // JMenuItem child2 = menu.add(contextHelpAction);
          // child2.putClientProperty("HelpID", contextHelpAction.getValue("HelpID"));
          putValue("HelpID", "HelpContextAction");
          // Configure action eg: put label, icon, tooltip, mnemonic, keystroke.
        }
    
        /** {@inheritDoc}
         */
        public void putValue(String key, Object value) {
          Object old = propertyMap.put(key, value);
          support.firePropertyChange(key, old, value);
        }
    
        /** {@inheritDoc}
         */
        public Object getValue(String key) {
          return propertyMap.get(key);
        }
    
        /** {@inheritDoc}
         */
        public boolean isEnabled() {
          return (Boolean) getValue("enabled");
        }
    
        /** {@inheritDoc}
         */
        public void setEnabled(boolean enabled) {
          putValue("enabled", enabled);
        }
    
        ///////////////////////
        // Event management. //
        ///////////////////////
    
        /** {@inheritDoc}
         */
        public void actionPerformed(ActionEvent event) {
          try {
            super.actionPerformed(event);
          }
          catch (Throwable t) {
            // Handle JavaHelp error.
          }
        }
    
        /** {@inheritDoc}
         */
        public void removePropertyChangeListener(PropertyChangeListener listener) {
          support.removePropertyChangeListener(listener);
        }
    
        /** {@inheritDoc}
         */
        public void addPropertyChangeListener(PropertyChangeListener listener) {
          support.addPropertyChangeListener(listener);
        }
    }
    Voir egalement HelpBroker.enableHelpKey(component, helpID, helpSet, presentation, title); pour activer l'aide via le button F1 sur un composant particulier.

    Sinon le guide utilisateur de JavaHelp est accessible ici. C'est le chapitre 5.3 qui parle de l'aide contextuelle. Tout betement la valeur textuelle associee a la propriete "HelpID" est une clee de la help map (l'un des fichiers XML, avec le help set, que tu devras creer) permettant ainsi de trouver le fichier HTML sur le disque contenant le topic d'aide a afficher. Le HelpBroker est literralement le fournisseur d'aide c'est l'objet JavaHelp charger d'acceder aux fichiers de definitions du help set.
    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

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Au nom de tous les BIG débutants et de moi même : MERCI !
    Bonne journée.
    Ami

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/06/2004, 11h36
  2. Réponses: 2
    Dernier message: 14/04/2004, 20h37
  3. [Debutant]Procedure stockee sous MSDE
    Par christophebmx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/04/2004, 11h39
  4. [VB6] [debutant] equivalent printf() en C
    Par bmayer dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 25/12/2003, 20h43
  5. Réponses: 7
    Dernier message: 07/04/2003, 10h35

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