Featured Posts

Se vienen el Barcamp Loxa 09 Se viene el #barcamploxa09, que se desarrollara en la ciudad de Loja Ecuador, ¿Qué es un BarCamp? Un BarCamp es un evento donde todos los asistentes...

Readmore

Problemas maritales al diseñador de google En este post se muestra un interesante colección de logotipos donde muestra que el diseñador de logos de google, está teniendo problemas maritales [caption...

Readmore

Lady Gaga - Bad Romance Acá el nuevo video de Lady Gaga, esta polémica artista que presenta su video Bad Romance [youtube ACm9yECwSso]

Readmore

Partido de futbol de mujeres violento Acá les dejo un  interesante video, donde se demuestre que la falta del fair play no se aplica unicaménte a los hombres, sino que las mujeres también...

Readmore

CSI Miami bate record guiness La serie CSI Miami, bate un record al filmar la escena mas cara de la historia utilizando la técnica bullet time que consiste en una extremada ralentización...

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