OVH Cloud OVH Cloud

[GridBagLayout]Sans image ?

4 réponses
Avatar
grillot sebastien
Bonjour,
J'utilise GridBagLayout comme layout manager et je n'arrive pas a
afficher d'image dans une JFrame... cela fais un petit moment que je me
prends la tete dessus donc je me permet de vous sousmettre mon code, en
vous remerciant par avance.
Seb

package frames.produit.ajout;
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;

/**
* @author zork
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class AjoutProduit extends JFrame{

public static void main(String[] args) {
AjoutProduit frame = new AjoutProduit();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(450,350);
frame.show();
}
public AjoutProduit()
{
setTitle("Ajout produit");
setSize(WIDTH,HEIGHT);

JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);

JMenu fichierMenu = new JMenu("Fichier");
fichierMenu.setMnemonic('F');

JMenuItem ajouterItem = new JMenuItem("Ajouter");
//ajouterItem.addActionListener(ajouterListener);
fichierMenu.add(ajouterItem);

fichierMenu.add(new
AbstractAction("Quitter")
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});
menuBar.add(fichierMenu);

//definition du layout manager

Container contentPane = getContentPane();
GridBagLayout layout = new GridBagLayout();
contentPane.setLayout(layout);
titreLabel=new JLabel(" Ajout produit ");
videLabel=new JLabel();
videLabel.setIcon(new ImageIcon("dncr_logo_en.gif"));

numeroLabel= new JLabel("Numero de produit :");

GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.BOTH;
constraints.anchor = GridBagConstraints.CENTER;
constraints.weightx = 0;
constraints.weighty = 0;
add(titreLabel,constraints,0,0,3,1);

add(videLabel,constraints,0,1,3,1);
add(videLabel,constraints,1,1,3,1);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.WEST;
add(numeroLabel,constraints,0,2,1,1);

}

public void add(Component c, GridBagConstraints constraints, int x, int
y, int w, int h)
{
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
getContentPane().add(c, constraints);
}

public final static int WIDTH = 400;
public final static int HEIGHT = 400;
private JLabel titreLabel;
private JLabel videLabel;
private JLabel numeroLabel;
}

4 réponses

Avatar
jocelyn
Tu es sur que le probleme vient du GridBagLayout ? Tu as essaye d'en mettre
un autre pour voir ?
Tu crees ton ImageIcon a partir d'une chaine de caracteres. OK mais ou se
trouve le fichier image?
Est-il a l'endroit adéquat ?

"grillot sebastien" a écrit dans le message
news: c09mai$1o6$
Bonjour,
J'utilise GridBagLayout comme layout manager et je n'arrive pas a
afficher d'image dans une JFrame... cela fais un petit moment que je me
prends la tete dessus donc je me permet de vous sousmettre mon code, en
vous remerciant par avance.
Seb

package frames.produit.ajout;
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;

/**
* @author zork
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class AjoutProduit extends JFrame{

public static void main(String[] args) {
AjoutProduit frame = new AjoutProduit();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(450,350);
frame.show();
}
public AjoutProduit()
{
setTitle("Ajout produit");
setSize(WIDTH,HEIGHT);

JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);

JMenu fichierMenu = new JMenu("Fichier");
fichierMenu.setMnemonic('F');

JMenuItem ajouterItem = new JMenuItem("Ajouter");
file://ajouterItem.addActionListener(ajouterListener);
fichierMenu.add(ajouterItem);

fichierMenu.add(new
AbstractAction("Quitter")
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});
menuBar.add(fichierMenu);

file://definition du layout manager

Container contentPane = getContentPane();
GridBagLayout layout = new GridBagLayout();
contentPane.setLayout(layout);
titreLabel=new JLabel(" Ajout produit ");
videLabel=new JLabel();
videLabel.setIcon(new ImageIcon("dncr_logo_en.gif"));

numeroLabel= new JLabel("Numero de produit :");

GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.BOTH;
constraints.anchor = GridBagConstraints.CENTER;
constraints.weightx = 0;
constraints.weighty = 0;
add(titreLabel,constraints,0,0,3,1);

add(videLabel,constraints,0,1,3,1);
add(videLabel,constraints,1,1,3,1);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.WEST;
add(numeroLabel,constraints,0,2,1,1);

}

public void add(Component c, GridBagConstraints constraints, int x, int
y, int w, int h)
{
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
getContentPane().add(c, constraints);
}

public final static int WIDTH = 400;
public final static int HEIGHT = 400;
private JLabel titreLabel;
private JLabel videLabel;
private JLabel numeroLabel;
}


Avatar
grillot sebastien
jocelyn wrote:
Tu es sur que le probleme vient du GridBagLayout ? Tu as essaye d'en mettre
un autre pour voir ?
Tu crees ton ImageIcon a partir d'une chaine de caracteres. OK mais ou se
trouve le fichier image?
Est-il a l'endroit adéquat ?


Bien entendu mon image se trouve dans le meme repertoire que mes sources :)

Avatar
jocelyn
Ben justement c loin d'être une assurance...
Je ne connais pas ton arborescence, mais ton fichier image doit se trouver
dans le PATH je crois.
Enfin j'image que soit tu as eu de la chance, soit tu as trouve seul puisque
tu as ouvert un autre thread ou tu expliques que tu y arrives
dans certains cas :)
Donc rendez-vous par ailleurs !
"grillot sebastien" a écrit dans le message
news: c0b5gu$qgi$
jocelyn wrote:
Tu es sur que le probleme vient du GridBagLayout ? Tu as essaye d'en
mettre


un autre pour voir ?
Tu crees ton ImageIcon a partir d'une chaine de caracteres. OK mais ou
se


trouve le fichier image?
Est-il a l'endroit adéquat ?


Bien entendu mon image se trouve dans le meme repertoire que mes sources
:)



Avatar
grillot sebastien
jocelyn wrote:
Ben justement c loin d'être une assurance...
Je ne connais pas ton arborescence, mais ton fichier image doit se trouver
dans le PATH je crois.
Enfin j'image que soit tu as eu de la chance, soit tu as trouve seul puisque
tu as ouvert un autre thread ou tu expliques que tu y arrives
dans certains cas :)
Donc rendez-vous par ailleurs !
"grillot sebastien" a écrit dans le message
news: c0b5gu$qgi$

jocelyn wrote:

Tu es sur que le probleme vient du GridBagLayout ? Tu as essaye d'en



mettre

un autre pour voir ?
Tu crees ton ImageIcon a partir d'une chaine de caracteres. OK mais ou



se

trouve le fichier image?
Est-il a l'endroit adéquat ?


Bien entendu mon image se trouve dans le meme repertoire que mes sources


:)


en effet j'arrive a afficher mom image dans une JFrame avec un layout de

type borderLayout maintenant (en effet suite a ton questionnement je me
suis dis qu'en effet j'avais pas testé de facon "simple") et de type
gridbaglayout mais pas dans mon appli, juste dans une jframe avec rien
d'autre dedans donc maintenant je em demande pourquoi je n'arrive pas a
afficher cette image...