BUTTON GRAPHIQUE EFFET GLASS

jaoued zahraoui Messages postés 13 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 20 novembre 2015 - 4 juin 2007 à 13:50
Joe59211 Messages postés 1 Date d'inscription lundi 2 mai 2011 Statut Membre Dernière intervention 3 mai 2011 - 3 mai 2011 à 15:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42967-button-graphique-effet-glass

Joe59211 Messages postés 1 Date d'inscription lundi 2 mai 2011 Statut Membre Dernière intervention 3 mai 2011
3 mai 2011 à 15:27
Bonjour à vous !
J'ai trouvé l'idée vraiment sympa et donc je l'ai essayé

Seulement ca ne donne pas le résultat escompté!

j'ai simplement utilisé les 5 constructeurs de MainButton et ai affiché les boutons dans une JFrame

le resultat et que pour tous les constructeurs on obtiens un "demi bouton" comprenez qu'on ne voit que l'hemisphere nord du boutton

de plus le constructeur MainButton(Color c) ne change pas la couleur

et MainButton(Icon icon) rajoute licone DERRIERE le dit boutton , elle est donc invisible...

bon je n'ai fait que tester le code fournit et ne me suis pas encore pencher sur les eventuelles erreurs puisque je ne me suis pas encore essayé a la personalisation de composants

par contre si vous aviez une version corrigée ca m'interresserait! ^^

Amicalement, Joe.
codesambinfo Messages postés 8 Date d'inscription jeudi 22 octobre 2009 Statut Membre Dernière intervention 11 novembre 2009
23 oct. 2009 à 23:23
Je s8 heureux
ca code tre fort
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 juin 2007 à 19:20
Très bien, c'est une bonne évolution de ma source.

Bien vu ;)

DarK Sidious
jaoued zahraoui Messages postés 13 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 20 novembre 2015
4 juin 2007 à 13:50
bonjour,

J'ai trouvé ca tellement génial que j'en ai fait ma propre adaptation.
Je vous la mets à disposition :

package com.ui.comp;

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

import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JButton;

public class MainButton extends JButton {
private static final long serialVersionUID = 1L;

private final int BULLE_WIDTH = 50;

private Color BULLE_COLOR = Color.green.darker(); // @jve:decl-index=0:

private Color BULLE_COLOR_B = BULLE_COLOR.brighter(); // @jve:decl-index=0:

private Color currentColor = BULLE_COLOR;

private int x = 5;

private int y = 5;

public MainButton() {
initialize();
}

public MainButton(Color BULLE_COLOR) {
this.BULLE_COLOR = BULLE_COLOR.darker();
initialize();
}

public MainButton(Icon arg0) {
super(arg0);
initialize();
}

public MainButton(String arg0) {
super(arg0);
initialize();
}

public MainButton(Action arg0) {
super(arg0);
initialize();
}

public MainButton(String arg0, Icon arg1) {
super(arg0, arg1);
initialize();
}

/**
* This method initializes this
*
*/
private void initialize() {
this.setFocusPainted(false);
this.setSize(new Dimension(BULLE_WIDTH + 10, BULLE_WIDTH + 10));
this.setBorderPainted(false);
this.setContentAreaFilled(false);
this.setOpaque(false);
this.addMouseListener(new java.awt.event.MouseListener() {
public void mouseEntered(java.awt.event.MouseEvent e) {
// si la souris passe au dessus du bouton et que le bouton est
// actif...
if (isEnabled()) {
// on change la couleur
currentColor = BULLE_COLOR_B;
}
}

public void mouseClicked(java.awt.event.MouseEvent e) {
}

public void mousePressed(java.awt.event.MouseEvent e) {
x += 2;
y += 2;
}

public void mouseReleased(java.awt.event.MouseEvent e) {
x -= 2;
y -= 2;
}

public void mouseExited(java.awt.event.MouseEvent e) {
// si la souris sort du bouton et que le bouton est actif...
if (isEnabled()) {
// on rétablit la couleur d'origine
// System.out.println("couleur d'origine");
currentColor = BULLE_COLOR;
}
}
});
}

@Override
public void paint(Graphics arg0) {
super.paint(arg0);
Graphics2D g2d = (Graphics2D) arg0;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setColor(currentColor);
g2d.setStroke(new BasicStroke(3));
g2d.drawOval(x, y, BULLE_WIDTH, BULLE_WIDTH);
GradientPaint gradient = new GradientPaint(BULLE_WIDTH / 2, y,
currentColor, BULLE_WIDTH / 2, y + BULLE_WIDTH, Color.white);
g2d.setPaint(gradient);
g2d.fillOval(x, y, BULLE_WIDTH, BULLE_WIDTH);
gradient = new GradientPaint(BULLE_WIDTH / 2, y, Color.white,
BULLE_WIDTH / 2, y + BULLE_WIDTH / 2, new Color(currentColor
.getRed(), currentColor.getGreen(), currentColor
.getBlue(), 0));
g2d.setPaint(gradient);
g2d.fillOval(x + BULLE_WIDTH / 5, y, 5 * BULLE_WIDTH / 8,
BULLE_WIDTH / 3);
}

} // @jve:decl-index=0:visual-constraint="10,10"
Rejoignez-nous