Edisoncor Weblog

↑ Grab this Headline Animator

JTextField con Imagen y redondeado

Author: edisoncor  |  Category: General, Swing

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

Tags: , , ,

One Response to “JTextField con Imagen y redondeado”

  1. juan ramón Dice:

    me parecio muy interesante los ejemplos, a mi me gusta java pero no solían gustarme la clase Graphics al punto que no la utilize(hasta 3 mese atras) ahora con esos ejemplos sencillos y muy utiles espero que de una vez por todas me guste esa pendejada

Deja un Comentario


Warning: stristr() [function.stristr]: Empty delimiter. in /home/radiopod/public_html/edisoncor/wp-content/plugins/wassup/wassup.php on line 2093