así que tengo este JButtons al que agrego iconos. Los iconos son demasiado grandes al principio, por lo que los cambio de tamaño de antemano, y funcionan bien. Excepto que cuando cambio el tamaño de la ventana, los JButton cambian de tamaño, pero no de Iconos, lo cual es problemático.Icono de JButton de cambio de tamaño automático
¿Hay alguna forma de tener un ícono que solo llene el JButton al que está conectado? Un poco de código para hacerlo más claro:
public JewelClass(){
setBackground (new Color (30,30,30));
addActionListener(this);
setLayout(new GridLayout());
ImageIcon icon = new ImageIcon(src/carre.jpg);
setIcon (resizeIcon(icon,60,60));
}
resizeIcon siendo una función personal, que lleva un icono, un parámetro de anchura y un parámetro de altura, y regresar un icono de cambiar de tamaño (obviamente). He intentado cambiar el diseño, pero no cambia nada. Intenté obtener el ancho/alto del JButton, pero dado que todavía no existen cuando se agrega el ícono, no funciona.
¿Muchachos tienen alguna idea de cómo superar esto? No tiene que ser un ícono, siempre y cuando mi JButton esté lleno con la imagen que le doy, es increíble :)
¡Gracias!
Para un enfoque más simple, cambie a 'int margin = 0; Dimensión dim = this.getParent(). GetSize(); 'sin la necesidad de reemplazar' getMinimumSize() 'y' getPreferredSize() 'ya que el componente principal tiene sus márgenes ya establecidos –
¡Genial! Así que funciona para pintar una forma, pero lo único es, una vez que reemplace 'g.setColor (Color.red); g.fillRect (margen, margen, dim.width - margin * 2, dim.height - margin * 2); ' por ' icono icono = nuevo ImageIcon ("src/triangle.jpg"); icon.paintIcon (this, g, 60, 60); ' , deja de mostrar nada. ¿Tiene alguna idea de por qué es esto? –
@Mikalichov por favor vea mi edición – mKorbel