Button graphique effet glass

Contenu du snippet

Une petite source sans prétention pour montrer qu'il est très simple de faire du design en java !

Je tire ce design de ce site (où tout est expliqué) :
http://www.attitudedesign.co.uk/journal/?p=55

Cette source est déjà présente sur le site ASP il me semble, c'est grâce à cette source que j'ai trouvé le lien du site.

Il m'a donc suffit de reprendre le concept pour le transcrire en java.

Ca donne une effet assez sympa en très peu de lignes de code, et ca peut faire de jolis boutons ronds par exemple.

Source / Exemple :


import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JFrame;

public class FrmMain extends JFrame {

	private static final long serialVersionUID = 1L;
	
	private final static int BULLE_WIDTH = 50;
	private final static Color BULLE_COLOR = Color.BLUE;
	
	public FrmMain() {
		setBounds(0, 0, BULLE_WIDTH * 2, BULLE_WIDTH * 2);
		setVisible(true);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	}
	
	public void paint(Graphics g) {
		super.paint(g);
		Graphics2D g2d = (Graphics2D) g;
		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		g2d.setColor(BULLE_COLOR);
		g2d.setStroke(new BasicStroke(3));
		g2d.drawOval(10, 50, BULLE_WIDTH, BULLE_WIDTH);
		GradientPaint gradient = new GradientPaint(BULLE_WIDTH / 2, 50, BULLE_COLOR, BULLE_WIDTH / 2, 50 + BULLE_WIDTH , Color.white);
		g2d.setPaint(gradient);
		g2d.fillOval(10, 50, BULLE_WIDTH, BULLE_WIDTH);
		gradient = new GradientPaint(BULLE_WIDTH / 2, 50, Color.white, BULLE_WIDTH / 2, 50 + BULLE_WIDTH / 2, new Color(BULLE_COLOR.getRed(), BULLE_COLOR.getGreen(), BULLE_COLOR.getBlue(), 0));
		g2d.setPaint(gradient);
		g2d.fillOval(10 + BULLE_WIDTH / 5, 50, 5 * BULLE_WIDTH / 8, BULLE_WIDTH / 3);
	}
	
	public static void main(String[] args) {
		new FrmMain();
	}

}

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.