Bouton avec un fond dégradé

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

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.