Label redondo

[email protected]
18 de Octubre del 2009
Deseo crear un label redondo alguien me podria ayudar
saludos

enajyr
18 de Octubre del 2009
Puedes basarte en el siguiente código:

// JLabel redondo
public class CompIndLum extends JLabel{

/**
* Constructor
*/
public CompIndLum() {
//Inicalizo las propiedades
setOpaque(false);
setLayout(null);
this.setIcon(new OvalIcon(this));
}

//CLASES INTERNAS
//---------------
/** Clase que hereda de Icono y que se añade al JLabel de este componente. Este
* Icono es el indicador luminoso */
class OvalIcon implements Icon {
/** Referencia al inidiador luminoso */
private CompIndLum compIndLum = null;
/** Constructor
* @param compIndLum referencia al componente */
public OvalIcon(CompIndLum compIndLum){
this.compIndLum = compIndLum;
}
/**
* Método de pintado del icono. Método de la interfaz Icon.
* @param component No es utilizado
* @param g contexto gráfica con el que pintar.
* @param x Posición x
* @param y Posición y
*/
public void paintIcon(Component component, Graphics g, int x, int y) {
g.setColor(compIndLum.getColor());
g.fillOval(0,0,compIndLum.getWidth()-1,compIndLum.getHeight()-1);
g.setColor(Color.black);
g.drawOval(0,0,compIndLum.getWidth()-1,compIndLum.getHeight()-1);
}
/**
* Método que devuelve el ancho del icono.
*/
public int getIconWidth() {
return compIndLum.getWidth()-1;
}
/**
* Método que devuelve el alto del icono.
*/
public int getIconHeight() {
return compIndLum.getHeight()-1;
}
}
}