Ajouter une image dans un GridLayout

Résolu/Fermé
yayals Messages postés 58 Date d'inscription vendredi 9 mars 2012 Statut Membre Dernière intervention 26 août 2013 - 5 déc. 2012 à 07:04
yayals Messages postés 58 Date d'inscription vendredi 9 mars 2012 Statut Membre Dernière intervention 26 août 2013 - 6 déc. 2012 à 18:38
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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
5 déc. 2012 à 09:15
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 vendredi 9 mars 2012 Statut Membre Dernière intervention 26 août 2013 14
5 déc. 2012 à 17:20
Eclipse me dit que ImageComponent n'existe pas.
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
5 déc. 2012 à 17:35
C'est la classe dont je t'ai donné le code ce matin !
0
yayals Messages postés 58 Date d'inscription vendredi 9 mars 2012 Statut Membre Dernière intervention 26 août 2013 14
6 déc. 2012 à 18:38
Ah oui je suis bête. Cette solution fonctionne tres bien
merci, le sujet est résolu.
0