Publié le 29/08/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Afficher un fond degrade dans un JPanel

Dans les interfaces graphiques, le fond des composants est de couleur unie par défaut. Pour donner un effet visuel à un conteneur tel que le jPanel voyons comment afficher un arrière-plan dégradé. Dans l'exemple, le degradé de deux couleurs est obtenu en surchargeant l'evenement Paint() et non pas pas ajout d'une image en arrière plan.

Dessiner un fond dégradé dans un composant

La fonction GradientPaint définit un dégradé de 2 couleurs. En surchargeant la méthode paint du JPanel, le composant va se dessiner avec un dégradé, dans notre cas du vert au jaune.
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import javax.swing.JFrame;
import javax.swing.JPanel;
 
/**
 * Afficher un fond degrade dans un JPanel
 * http://www.fobec.com/java/983/afficher-fond-degrade-dans-jpanel.html
 * Fobec 2010
 */
public class DegradPanel extends JPanel {
 
    /**
     * Constructeur
     */
    public DegradPanel() {
        super();
    }
 
    /**
     * Surcharger l'evenement Paint
     * @param _g 
     */
    public void paint(Graphics _g) {
        super.paintComponent(_g);
        Graphics2D g = (Graphics2D) _g;
 
        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
        Rectangle bounds = getBounds();
        Paint gradientPaint = new GradientPaint(0, bounds.y, Color.GREEN,
                0, bounds.y + bounds.width, Color.YELLOW);
        g.setPaint(gradientPaint);
        g.fillRect(0, 0, bounds.width, bounds.height);
    }
 
    /**
     * Exemple dans un jFrame
     * @param args 
     */
    public static void main(String args[]) {
        DegradPanel degradPanel = new DegradPanel();
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(degradPanel);
        frame.setSize(400, 400);
        frame.setLocation(200, 200);
        frame.setVisible(true);
    }
}

Afin d'ajouter cette propriété à un JPanel, il est préférable de créer un composant hérité de JPanel avec des setteurs et getteurs pour fixer les couleurs du dégradé.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
29/08/2010
Visualisation
vu 3931 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 264 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Arthur dans java

Salut!
J'ai repris ton code pour un projet mais en testant le programme rien ne s'affiche. Pourquoi ?
Dois-je mettre a jour quelque chose ? Importer ?
La seule modification que j'...

Publié par Fobec dans tuto

Pour la distribution Linux Mint 12 Lisa, saisir dans le terminal:
# sudo service lightdm restart

Publié par lamardiallo48 dans java

trop bon ton code ca m'a beaucoup aide. Merci

Publié par Broker dans logiciel

C'est impressionnant, ca va devenir difficile de se cacher !

Publié par Axel dans java

L'astuce de la conversion en gris se situe dans imagedst.
Le BufferedImage imagesrc contient l'image en couleur, imagedst est une image cree en nuance de gris. Lorsque l'on copie l'image colorisee...