Bouton avec un fond dégradé

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 822 fois - Téléchargée 15 fois

Contenu du snippet

Cette source propose un bouton un peu amélioré. Le fond est sur un dégradé bleu et s'éclaire lorsque le pointeur de la souris passe au dessus.

Source / Exemple :




import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Paint;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class BoutonDegrade extends JPanel {

	private static final long serialVersionUID = -4550766181748315549L;
	
	private Color couleurFond;
	private final Color couleurSurbrillance = new Color(255, 255, 255);
	private final Color couleurNormale = new Color(2, 87, 137);
	private final Color couleurBas = new Color(0, 154, 213);

	public BoutonDegrade(String texte){
		couleurFond = couleurNormale;
		JLabel lTexte = new JLabel(texte);
		lTexte.setForeground(Color.WHITE);
		lTexte.setFont(new Font("Calibri", Font.PLAIN, 22));
		setLayout(new BorderLayout());
		add(lTexte, BorderLayout.CENTER);
		addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent e) {}
			
			@Override
			public void mousePressed(MouseEvent e) {}
			
			@Override
			public void mouseClicked(MouseEvent e) {}
			
			@Override
			public void mouseExited(MouseEvent e) {
				couleurFond = couleurNormale;
				repaint();
			}
						
			@Override
			public void mouseEntered(MouseEvent e) {
				couleurFond = couleurSurbrillance;
				repaint();				
			}
			
		});
	}

	@Override
	public void paintComponent(Graphics g){
		Paint paint;
		Graphics2D g2d;
		if (g instanceof Graphics2D) {
			g2d = (Graphics2D) g;
		}
		else {
			System.out.println("Error");
			return;
		}
		paint = new GradientPaint(0,0, couleurBas, 0, getHeight(), couleurFond);
		g2d.setPaint(paint);
		g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 20, 20);
		g2d.setColor(couleurNormale);
		g2d.setStroke(new BasicStroke(3));
		g2d.drawRoundRect(0, 0, getWidth(), getHeight(), 20, 20);
	}
	
	public static void main(String[] args){
		JPanel panel = new JPanel();
		panel.setLayout(new GridBagLayout());
		GridBagConstraints gc = new GridBagConstraints();
		gc.weightx=1;
		gc.weighty = 5;
		gc.fill=GridBagConstraints.BOTH;
		gc.anchor = GridBagConstraints.NORTH;
		gc.insets = new Insets(3, 1, 3, 1);
		gc.gridx=0;
		gc.gridy=0;
		for(int i=0; i<5; i++){
			BoutonDegrade b = new BoutonDegrade(" Exemple "+i);
			panel.add(b, gc);
			gc.gridy=gc.gridy+1;
		}
		JFrame f = new JFrame();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(150, 300);
		f.setLocationRelativeTo(null);
		f.add(panel);
		f.setVisible(true);
	}

}

A voir également

Ajouter un commentaire

Commentaires

Très bien.
Messages postés
3
Date d'inscription
mercredi 27 novembre 2013
Statut
Membre
Dernière intervention
28 novembre 2013

Great code! Thank you
:)))))))))))))))))))))))))))))) merci
Messages postés
3
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
24 août 2016

merci mon frère

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.