Edisoncor’s Weblog

Programación en Java desde LOJA

Archivo de 9/10/07

JTextField con Imagen y redondeado

Publicado por edisoncor en Octubre 9, 2007

Hola a todos denuevo me encuentro aqui, en esta oportunidad vamos desarroollar un JTextField al cual le podamos añadir una imagen, y ademas va a estar redondeado, el codigo para desarrollarlo es asi:

JtextField con Imagen
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Paint;
import java.awt.geom.RoundRectangle2D;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder; 

/**
 *
 * @author Edisoncor
 */
public class JERoundTextField extends JTextField{ 

    private int arcw=20;
    private int arch=20;
    private Image image=null;
    private Icon icon; 

    
    public JERoundTextField() {
        setOpaque(false);
        setBorder(new EmptyBorder(0,5,0,2));
        setPreferredSize(new Dimension(100,20));
    } 

    @Override
     protected void paintComponent(Graphics g) { 

        Graphics2D g2 = (Graphics2D) g;
        Paint oldPaint = g2.getPaint(); 

        RoundRectangle2D.Float r2d = new RoundRectangle2D.Float(
                0,0,getWidth(),getHeight(),arcw,arch);
        g2.clip(r2d); 

        g2.setPaint(new GradientPaint(0.0f, 0.0f, getBackground(),
                0.0f, getHeight(), getBackground()));
        g2.fillRect(0,0,getWidth(),getHeight());
        if(getImage()!=null){
            g2.drawImage(getImage(), 5, 2, getHeight()-3, getHeight()-3, null);
            setBorder(new EmptyBorder(0,(int)(getHeight()*1.2),0,2));
        }
        g2.setPaint(new GradientPaint(0.0f, 0.0f, Color.BLACK,
                0.0f, getHeight(), Color.BLACK));
        g2.drawRoundRect(0, 0, getWidth(), getHeight(), arcw, arch); 

        g2.setPaint(oldPaint);
        super.paintComponent(g); 

    } 

    public int getArcw() {
        return arcw;
    } 

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

    public int getArch() {
        return arch;
    } 

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

    public Image getImage() {
        return image;
    } 

    public void setImage(Image image) {
        this.image = image;
    } 

    public Icon getIcon() {
        return icon;
    } 

    public void setIcon(Icon icon){
        this.icon=icon;
        setImage(((ImageIcon)icon).getImage());
    } 

}
aqui podemos ver una demostracion de como quedaria el JTexfield
JtextField con Imagen

Publicado en General, Swing | Etiquetado: , , , | 4 Comentarios »