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 :

JButton customisé avec dégradé : PB mouseover


Sujet :

Composants Java

  1. #1
    Membre actif
    Avatar de nicolas.pied
    Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Janvier 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'Etudes

    Informations forums :
    Inscription : Janvier 2005
    Messages : 249
    Points : 235
    Points
    235
    Par défaut JButton customisé avec dégradé : PB mouseover
    Bonjour,

    J'ai doit mettre en place une interface graphique avec un design différents de ceux des composants standard (mais le comportement de ceux-ci reste le même).

    Je suis donc à la création d'un JButton customisé. Celui-ci présente un dégradé vertical allant du blanc vers un niveau de gris. Le problème que j'ai, est que je souhaiterais que celui-ci passe dans un fond bleu clair lorsque la souris passe au dessus...mais comment gérer cela ?

    Voici le code source de ce bouton customisé :

    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
     
    package jgradient;
     
    import java.awt.Color;
    import java.awt.GradientPaint;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.RenderingHints;
     
    import javax.swing.JButton;
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.ImageIcon;
     
    /**
     *
     * @author 
     */
    public class JGradientButton extends JButton {
     
        private Color topColor;
        private Color bottomColor;
        private Color borderColor;
     
        /** Creates a new instance of JGradientButton */
        public JGradientButton() {
            this(new Color(255, 255, 255), new Color(234, 235, 237));
        }
     
        public JGradientButton(Color c1, Color c2) {
            this.topColor    = c1;
            this.bottomColor = c2;
            this.borderColor = new Color(167, 166, 170);
            this.setBorder(BorderFactory.createLineBorder(borderColor));
            this.setContentAreaFilled(false);
            this.setFocusPainted(false);
        }
     
        public void setTopColor(Color c1) {
            this.topColor = c1;
            repaint();
        }
     
        public void setBottomColor(Color c2) {
            this.bottomColor = c2;
            repaint();
        }
     
        public void setBorderColor(Color color) {
            this.borderColor = color;
            repaint();
        }
     
        protected void paintComponent(Graphics g) {
            final Graphics2D g2 = (Graphics2D) g;
            int w = getWidth();
            int h = getHeight();
     
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
     
            GradientPaint gradient = new GradientPaint(0, 0, topColor, 0, h, bottomColor, false);
            g2.setPaint(gradient);
            g2.fillRect(0, 0, w, h);
            super.paintComponent(g);
        }
     
        /*
         * Main
         */
        public static void main(String[] args) {
            // TODO code application logic here
     
            JFrame frame = new JFrame();
            frame.setSize(600, 400);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    	JGradientButton button = new JGradientButton();
    	//button.setForeground(Color.BLACK);
    	button.setText("Test 1212");
     
            button.setIcon(new ImageIcon("icon.gif"));
            button.setOpaque(false);
    	frame.getContentPane().add(button);
            frame.getContentPane().add(button);
    	frame.pack();
    	frame.setVisible(true);
        }
    }
    Merci pour votre aide.

    PS : J'ai également besoin de personnaliser la barre de titre d'une JTable, savez vous comment réaliser cela ?
    Un peu d'humour : jokes.guppix.fr
    Articles et actualités informatiques : Kbups.org
    Articles sur le développement informatique : nicolaspied.developpez.com

  2. #2
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Tu pars dans la mauvaise direction. Tu devrais plutot implementer ton propre look and feel avec des UI delegates. Si tu as Java 1.5 tu pourras te simplifier la tache en utilisant Synth. Pour ton bouton, utilise tout betement un MouseListener et les evenements mouseEntered et mouseExited.
    Romain Guy
    Android - Mon livre - Mon blog

Discussions similaires

  1. JButton groupés avec Vector
    Par Matt112 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 09/05/2008, 19h26
  2. Carte (marine) avec dégradé
    Par Speed41 dans le forum Langage
    Réponses: 2
    Dernier message: 16/12/2007, 20h34
  3. faire un JButton customisé
    Par atha2 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 28/11/2007, 00h20
  4. [JButton] probleme avec les addlistener() ?
    Par jlassiramzy dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 10/01/2007, 12h11
  5. [JButton] probleme avec les addlistener()
    Par jlassiramzy dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/01/2007, 19h19

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