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:
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
Esta entrada fue publicada el Octubre 9, 2007 a 1:28 pm y está archivada en General, Swing. Etiquetado: Graphics2D, Icon, java Swing, JTextField con Imagen. Puedes seguir los comentarios a esta entrada a través de RSS 2.0 feed. Puedes deja un comentario, o trackback desde tu propio sitio.


juan ramón escribió
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
Matias escribió
Holas
muy bueno el blog me encanto, solo como detalle constructivo para la gente que no sabe mucho, que creo que pueden ser la gente que mas usa o busca por internet sobre estos temas, que porfavor pongas comentarios entre las lineas para poder entender que hace cada cosa.
Me encantaria algun dia poder hacer cosas asi
bueno suerte
gran blog
Matias
Yunier René escribió
Hola a todos:
Utilizando estos componentes en mi aplicación me he dado cuenta que además de eso necesito un Combobox con los bordes redondeados de manera tal que combine con mis otros componentes. Al rehacer el método en el paint aún me pinta el borde del componente.
pudiera alguien decirme que puedo hacer??
Yunier René escribió
Hola a todos:
Utilizando estos componentes en mi aplicación me he dado cuenta que además de eso necesito un Combobox con los bordes redondeados de manera tal que combine con mis otros componentes. Al rehacer el método en el paint aún me pinta el borde del componente.
pudiera alguien decirme que puedo hacer??