Si bien se puede hacer uso de archivos de imagen (jpg, png, bmp, etc) en las aplicaciones java, también este te permite crear imágenes dinamicamente mediante su API 2D Graphics2D que se extiende de la clase abstracta Graphics el cual proporciona los métodos necesarios para crear imágenes complejas a partir de objetos básicos.
En los siguientes enlaces puedes ver la documentación oficial (en ingles) de Oracle para las clases:
A continuación dos métodos que haciendo uso de primitivas como son círculos y también polígonos, crea una imagen en memoria el cual puede ser asignado a cualquier control que soporte este tipo de propiedad.
private Image creaImagen() { //imagen en memoria BufferedImage img = new BufferedImage(48, 48, BufferedImage.TYPE_INT_ARGB); // Graphics2D g2d = (Graphics2D) img.getGraphics(); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); //circulo g2d.setColor(new Color(101,193,238)); g2d.fillOval(2, 2, 44, 44); //circulo borde g2d.setStroke(new BasicStroke(2.0f)); g2d.setColor(new Color(12,89,183)); g2d.drawOval(2, 2, 44, 44); //Poligono g2d.setColor(new Color(50,149,218)); g2d.fillPolygon(getFlechaP(11,15)); g2d.setColor(new Color(255,255,255)); g2d.fillPolygon(getFlecha(9,13)); return img; }
Método con coordenadas que representan una flecha
/** * coordenadas de una flecha */ private Polygon getFlecha(int px, int py){ Polygon flecha = new Polygon(); flecha.addPoint( px, py + 6 ); flecha.addPoint( px + 16, py + 6 ); flecha.addPoint( px + 16, py ); flecha.addPoint( px + 30, py + 11 ); flecha.addPoint( px + 16, py + 22 ); flecha.addPoint( px + 16, py + 16 ); flecha.addPoint( px, py + 16 ); return flecha; }
Y asignando esta imagen a un JLabel, tenemos:
ImageIcon icon = new ImageIcon(creaImagen()); jLabel1.setIcon(icon); jLabel1.setText("Hola Mundo Cruel!!!");
enjoy!!!
El proyecto «Java Decompiler» tiene como objetivo desarrollar herramientas para descompilar y analizar byte code de jav[...]
Para agregar imágenes a un JComboBox, partiremos de un proyecto Netbeans con la siguiente estructura: Tenemos dos clases[...]
En este post personalizaremos un componente JComboBox para que sus elementos acepten tablas (JTable) en lugar de texto s[...]
j2html es una biblioteca para java que permite generar código html seguro desde código java utilizando sus propias etiqu[...]
Geany es un editor de texto para Sistemas Operativos Linux, windows y MAC que utiliza el kit de herramientas GTK+ con ca[...]
Un post cortito de fin de semana 🙂 , este trata de la forma de extraer la información de una base de datos formar una es[...]