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 2806 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 261 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Amal dans tuto

pour moi j'ai créé une liste déroulante en liaisant avec la base de donnée déja existant mais la valeur sélectionné ne peut pas etre afficher jamais et...

Publié par Laurent dans java

Rectification:
fonctionne en mode plein ecran avec la barre masque sur ajout d'un setUndecorated(true)

Encore merci :)

Publié par IB dans tuto

On ne voit pas le gros bouton rouge 'Download' pour charger les 3 scripts, dont vous parlez sur le site

Publié par Fobec dans tuto

Je ne maitrise pas du tout WordPress ...
un plugin a l'air sympa http://wordpress.org/extend/plugins/scripts-gzip/, en parcourant le code source, j'ai vu des pistes pour integrer Gzip sous WordPre...

Publié par BOKOMBEJEAN dans java

code source excellente,
maintenant comment l'afficher dans une zone de texte ou un champ de texte?