miércoles, 10 de junio de 2009

JPanel con Gradiente redondeado (Parte 3)

Bueno la parte dos de este pequeño tutorial tiene solo la elección de dos colores este nuevo tiene la elección de tres colores, también pueden elegir el color del borde, este es el código:

package vista;

/**
*
* @author isaac legorreta
*/

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.RoundRectangle2D;
import javax.swing.JLayeredPane;


public class IPanel extends JLayeredPane
{
private Color color1 = new Color(255,255,255);
private Color color3 = new Color(1,1,1);
private Color color2 = new Color(0,0,0);
private int arcw=25;
private int arch=25;

@Override
protected void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g.create();
float x=getWidth();
float y=getHeight();
g2.setPaint(new GradientPaint(0.0f, 0.0f, getColor1().darker(),
0.0f, getHeight(), getColor2().darker()));
g2.fill(new RoundRectangle2D.Double(0, 0, x, y, getArcw(),getArch()));
g2.setPaint(new GradientPaint(0.0f, 0.0f,getColor3(),
getWidth(), getHeight(),getColor3()));
g2.drawRoundRect(0, 0, getWidth()-1 , getHeight(), getArcw(),getArch());
g2.setPaint(Color.black);
}

public Color getColor3() {
return color3;
}

public void setColor3(Color color3) {
this.color3 = color3;
}



public int getArch() {
return arch;
}

public void setArch(int arch) {
this.arch = arch;
}

public int getArcw() {
return arcw;
}

public void setArcw(int arcw) {
this.arcw = arcw;
}

//Métodos set y get que nos permiten modificar los colores

public Color getColor1() {return color1;}

public void setColor1(Color color1) {this.color1 = color1;}

public Color getColor2() {return color2;}

public void setColor2(Color color2){this.color2 = color2;}

}




Espero hacer el panel transparente, pero que no tenga problemas al agregar widgets

No hay comentarios.: