Featured Posts

Demos EdisoncorSx En el siguiente enlace podrán encontrar algunos demos de las librerías EdisoncorSx http://code.google.com/p/edisoncorsx/downloads/list

Readmore

Actualización EdisoncorSx 0.07 Ha sido un largo tiempo desde la ultima vez que escribí por ultima vez, debo confesar que al blog lo he tenido un poco olvidado(por algunas razones laborales), per...

Readmore

EdisoncorSx Hola amigos, hace algún tiempo que no pósteo nada en absoluto y al blog lo he tenido un poco olvidado, pero mas vale tarde que nunca, en está ocasión...

Readmore

Actualización EdisoncorSx 0.06 Hola como están ahora con poco tiempo para dedicarme al blog, pero bueno por ahí he sacado un tiempo y he realizado algunas actualizaciones, esperando que todas...

Readmore

EdisoncorSx integrado con GoogleCode a través de NetBeans... En este tútorial voy a explicar como puedes tener un Netbeans el proyecto EdisoncorSx y poder tener los cambios que se van a realizar, lo que debes tener es instalado...

Readmore

Edisoncor Weblog Rss

JLabel con Imagen Semitransparente

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

2


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);
  }
 
}

Facebook comentarios:

Comments (2)

Hola probe el codigo y tengo varios labelConImagen en un panel, pero cuando trato de pintar un nuevo labelConImagen los demas labelConImagen se repintan y pierden la transparencia. Porque?

bien  bien esta muy bueno, aaa soy nuevo en java y quisiera sabe si me pueden ayudar a que aparesca en jTextField la hora y fecha 

Write a comment

Advertise Here