Featured Posts

Señal Paternal WTF Solo en mi lindo país Ecuador, se dan este tipo de señales [caption id="attachment_599" align="aligncenter" width="600" caption="Señal...

Readmore

Flashmob recordando a Michael Jackson En días anteriores se realizo varios  Flashmob recordando a Michael Jackson estos fueron realizados el 8 de Julio en Sergels Torg Stockholm a las 17h30 y en Central station...

Readmore

Entrada a Boda novedosa Una muy novedosa y original entrada a una boda [youtube 4-94JhLEiN0]

Readmore

Jackie Chan en Publicidad de Kaspersky Aqui esta una publicidad de Jackie Chan que hace para el conocido Software Antivirus Kaspersky, el cual este video se ha convertido ya en un video viral [youtube kbRSQVsOX_Y]

Readmore

Probando la teoria de los tres cerditos La fabula de los tres cerditos nos dice que el lobo feroz derribo con soplidos, la casa hecha de paja del cerdito menor, la de madera del segundo cerdito, pero que no pudo...

Readmore

Edisoncor Weblog Rss

JLabel con Imagen Semitransparente

Posted on : 04-06-2009 | By : edisoncor | In : Netbeans, Swing

0

A veces se desea utilizar un Jlabel que tenga en su fondo una imagen, pero que la imagen no interfiera con la claridad del texto aquí la solución

import java.awt.AlphaComposite;
import java.awt.Composite;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
 
/**
 *
 * @author EdisonCor
 */
public class LabelConImagen extends JLabel{
 
    private float tran= 0.5f;
    private Image image=null;
    private Icon icono;
 
    public float getTran() {
        return tran;
    }
 
    public void setTran(float tran) {
        this.tran = tran;
    }
 
    public Image getImage() {
        return image;
    }
 
    public void setImage(Image image) {
        this.image = image;
        repaint();
    }
 
    public Icon getIcono() {
        return icono;
    }
 
    public void setIcono(Icon icon){
        this.icono=icon;
        setImage(((ImageIcon)icon).getImage());
    }
 
    @Override
    protected void paintComponent(Graphics g) {
          Graphics2D g2 = (Graphics2D) g;
 
        g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        Composite oldComposite = g2.getComposite();
        AlphaComposite newComposite =
	    AlphaComposite.getInstance(
                AlphaComposite.SRC_OVER,getTran());
        g2.setComposite(newComposite);
        if(getImage()!=null)
            g2.drawImage(getImage(), 0, 0, getWidth(), getHeight(), null);
        g2.setComposite(oldComposite);
        super.paintComponent(g);
    }
 
}

ahora una vez que creamos la clase LabelConImagen ahora la vamos a utilizar lo primero es que vamos a agregar en un Jframe, lo podemos hacer en netbeans con solo arrastrar la clase desde el navegador de proyectos hasta un JPanel, Jdialog, Jframe, aquí vamos a observar la propiedad icono de donde nosotros podemos seleccionar la imagen

Jlabel transparente

Jlabel transparente

una vez que le selecionemos la imagen vamos a personalizar el label con fuente y los características que desees

Jlabel transparente

Jlabel transparente

la clase también posee una propiedad tran donde se puede seleccionar el nivel de transparencia del JLabel

JLabel Transparente

JLabel Transparente

Aqui les dejo otro código para la utilización de esta clase

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
 
/**
*
* @author EdisonCor
*/
public class Mainframe extends JFrame{
 
private LabelConImagen  labelConImagen1;
 
  public Mainframe() {
      labelConImagen1 = new LabelConImagen();
 
      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
      labelConImagen1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
      labelConImagen1.setText("Autos");
      labelConImagen1.setFont(new java.awt.Font("Tahoma", 1, 36));
      labelConImagen1.setIcono(new javax.swing.ImageIcon("D:\Edisoncor\Imágenes\Autos\11-WLP05.JPG")); // NOI18N
      labelConImagen1.setTran(0.7F);
      add(labelConImagen1,BorderLayout.NORTH);
      add(new JTextField(),BorderLayout.CENTER);
      pack();
  }
 
  public static void main(String args[]) {
      Mainframe main = new Mainframe();
      main.setVisible(true);
  }
 
}

Write a comment

Advertise Here