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

Composants Java Discussion :

un bouton comme ceux d'une JToolBar


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut un bouton comme ceux d'une JToolBar
    Salut,

    Une question vraiment bête, mais je trouve pas...
    Est-il possible de faire un bouton qui est le même comportement graphique que ceux qui sont dans un JToolBar ? C'est à dire le fond non peint (à plat), et quand on les survol, là le fond est dessiné.

    On peux ne pas peindre la bordure et le fond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    stopSolver.setBorderPainted(false);
    stopSolver.setContentAreaFilled(false);
    Mais lorsque je survol le bouton, rien n'indique que c'est un bouton finalement, et on peut le confondre avec un label.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    as tu essayé setRollOverEnabled(true)?

  3. #3
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Oui, et cela est sans effet !

  4. #4
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Bon, à défaut j'ai résolu le truc par quelque 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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    private void initFlatButton(final JButton button) {		
    		button.setBorderPainted(false);
    		button.setContentAreaFilled(false);
    		button.setFocusPainted(false);
    		button.addMouseListener(new MouseAdapter() {
    			@Override
    			public void mouseEntered(MouseEvent e) {
    				SwingUtilities.invokeLater(new Runnable() {
    					@Override
    					public void run() {
    						button.setBorderPainted(true);
    						button.setContentAreaFilled(true);
    					}
    				});		
    			}
    			@Override
    			public void mouseExited(MouseEvent e) {
    				SwingUtilities.invokeLater(new Runnable() {
    					@Override
    					public void run() {
    						button.setBorderPainted(false);
    						button.setContentAreaFilled(false);
    					}
    				});	
    			}
    		});
    		button.addFocusListener(new FocusListener() {
    			@Override
    			public void focusGained(FocusEvent e) {
    				SwingUtilities.invokeLater(new Runnable() {
    					@Override
    					public void run() {
    						button.setBorderPainted(true);
    						button.setContentAreaFilled(true);
    					}
    				});	
    			}
    			@Override
    			public void focusLost(FocusEvent e) {
    				SwingUtilities.invokeLater(new Runnable() {
    					@Override
    					public void run() {
    						button.setBorderPainted(false);
    						button.setContentAreaFilled(false);
    					}
    				});	
    			}
    		});
    	}

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    t'as pas obligé de passer par un invokelater, ton listener étant appelé par l'EDT, tu peux directement modifier les propriétés du bouton

  6. #6
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Ah, c'est une chose que j'ignorais. Merci de l'info.
    Bon je tag le post comme résolu puisque personne n'a d'autre solution à proposer...
    @+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/04/2011, 12h42
  2. Réponses: 7
    Dernier message: 29/04/2008, 20h19
  3. Un fichier .bmp comme paramètre d'une Procédure stockée
    Par FONKOU dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/10/2004, 17h56
  4. une url comme argument d'une fonction
    Par khayyam90 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/10/2004, 20h15
  5. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 13h12

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