Ajouter une image dans un GridLayout

Résolu
yayals Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -  
yayals Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'aimerais savoir si il est possible d'ajouter une image dans un gridlayout
par exemple je sais comment ajouter un bouton

monPanel.setLayout(new GridLayout(2, 2, 5, 5));
monPanel.add(monBouton);

mais pour une mage ?
Merci d'avance


A voir également:

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Pour faire ça il faudrait que tu utilises des Component qui dessinent l'image :

public class ImageComponent extends java.awt.Component
{
    private static final long serialVersionUID = 1;

    private final java.awt.Image img;
        
    public ImageComponent(java.awt.Image image)
    {
        img = image;
    }
    
    @Override
    public void paint(java.awt.Graphics g)
    {
        g.drawImage(img, 0, 0, getWidth(), getHeight(), null, null);
    }
}

Remarque : il y a plusieurs moyens d'obtenir des objets java.awt.Image, en passant par ImageIcon, ImageIO, Toolkit, etc. En général on choisit toujours la même méthode adaptée suivant les besoins mais pour l'exemple voici les trois :

public class Test
{
    public static void main(String[] args) throws IOException
    {
        JFrame frame = new JFrame();
        frame.setSize(300, 300);
        frame.setLayout(new GridLayout(2,2));
        
        frame.add(new ImageComponent(new ImageIcon("C:/rouge.png").getImage()));
        frame.add(new ImageComponent(Toolkit.getDefaultToolkit().getImage("C:/vert.png")));
        frame.add(new ImageComponent(ImageIO.read(new File("C:/bleu.png"))));
        
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
0
yayals Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   14
 
Eclipse me dit que ImageComponent n'existe pas.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
C'est la classe dont je t'ai donné le code ce matin !
0
yayals Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   14
 
Ah oui je suis bête. Cette solution fonctionne tres bien
merci, le sujet est résolu.
0