quindi ho questo JButtons a cui aggiungo le icone. Le icone sono troppo grandi inizialmente, quindi le ridimensiono in anticipo e funziona perfettamente. Tranne che quando ridimensiono la finestra, i JButton cambiano dimensione, ma non le icone, il che è problematico.Auto-ridimensionamento Icona JButton
C'è un modo per avere un'icona basta riempire il JButton a cui è collegato? Bit di codice per renderlo più chiaro:
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 essendo una funzione personale, che prende un'icona, un parametro di larghezza e un parametro di altezza, e restituisce un'icona ridimensionata (ovviamente). Ho provato a cambiare il layout, ma non cambia nulla. Ho provato ad ottenere la larghezza/altezza del JButton, ma dal momento che non esistono ancora quando l'Icona viene aggiunta, non funziona.
Avete qualche idea di come superare questo? Non deve essere un'icona, fintanto che il mio JButton è pieno dell'immagine che gli ho dato, è fantastico :)
Grazie!
Per un approccio più semplice, passare a 'int margin = 0; Dimension dim = this.getParent(). GetSize(); 'senza la necessità di sovrascrivere' getMinimumSize() 'e' getPreferredSize() 'poiché il componente principale ha già i suoi margini impostati –
Grande! Quindi funziona per dipingere una forma, ma l'unica cosa è, una volta sostituisco 'g.setColor (Color.red); g.fillRect (margine, margine, dim.width - margine * 2, dim.height - margine * 2); ' di ' Icona icona = nuovo ImageIcon ("src/triangle.jpg"); icon.paintIcon (this, g, 60, 60); ' , smette di visualizzare qualsiasi cosa. Hai idea del motivo? –
@Mikalichov si prega di vedere la mia modifica – mKorbel