Polygone avec jpanel
skflers61
Messages postés
49
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
je fais une application qui doit m'afficher un polygone. j'ai une classe qui me créer ce polygone et elle fonctionne bien. Le problème c'est que je n'arrive pas à mettre des composants à coté de ce polygone (boutons, bordures, images,..)
voici mon code:
Par exemple, dans ce code j'essaie de mettre une bordure et un bouton dans mon polygone, qui est en faite un jpanel, mais sa m'affiche juste le polygone et rien d'autres.
j'ai essayé en ajoutant un deuxieme jpanel:
et la sa ne m'affiche que le JPanel "d".
En faite, c'est que le dernier composant que j'ajoute à ma fenêtre (ici fen.add(d)) qui est affiché.
Comment je peux faire pour voir le polygone et mes autres composants dans ma fenêtre?
Merci pour vos réponses.
je fais une application qui doit m'afficher un polygone. j'ai une classe qui me créer ce polygone et elle fonctionne bien. Le problème c'est que je n'arrive pas à mettre des composants à coté de ce polygone (boutons, bordures, images,..)
voici mon code:
public class Polygon extends JPanel {
// Déclarer 2 tableaux pour les coordonnées
int x[], y[];
public void init()
{
// Définir la couleur de fond
setBackground(Color.gray);
// Définir les coordonnées de chaque point du polygone
x = new int[8];
y = new int[8];
x[0] = 20; y[0] = 100;
x[1] = 60; y[1] = 50;
x[2] = 130; y[2] = 50;
x[3] = 170; y[3] = 100;
x[4] = 170; y[4] = 150;
x[5] = 130; y[5] = 200;
x[6] = 60; y[6] = 200;
x[7] = 20; y[7] = 150;
}
public void paint(Graphics g)
{
init();
// Tracer un polygone, basé sur les tableaux de coordonnées x[] et y[]
g.setColor(Color.red);
g.drawPolygon(x, y, x.length);
}
public static void main(String[] args) {
JFrame fen = new JFrame();
Polygon p = new Polygon();
p.setBorder(BorderFactory.createTitledBorder("Poste[]"));
p.add(new JButton("Difficile"));
fen.add(p);
fen.setSize(500,500);
fen.setVisible(true);
}
}
Par exemple, dans ce code j'essaie de mettre une bordure et un bouton dans mon polygone, qui est en faite un jpanel, mais sa m'affiche juste le polygone et rien d'autres.
j'ai essayé en ajoutant un deuxieme jpanel:
public static void main(String[] args) {
JFrame fen = new JFrame();
Polygon p = new Polygon();
JPanel d = new JPanel();
d.setBorder(BorderFactory.createTitledBorder("Poste[]"));
d.add(new JButton("Difficile"));
fen.add(p);
fen.add(d);
fen.setSize(500,500);
fen.setVisible(true);
}
et la sa ne m'affiche que le JPanel "d".
En faite, c'est que le dernier composant que j'ajoute à ma fenêtre (ici fen.add(d)) qui est affiché.
Comment je peux faire pour voir le polygone et mes autres composants dans ma fenêtre?
Merci pour vos réponses.
1 réponse
Bonjour,
C'est un problème de Layout, par défaut une JFrame a un BorderLayout, tu dois donc préciser sur quel bord tu ajoutes ton JPanel, sinon ils vont se mettre tout les deux sur le même bord.
Voir : A Visual Guide to Layout Managers
Attention : ce n'est pas parce que ta fenêtre n'est plus visible que le programme est terminé, tu dois indiquer au programme de se fermer en même temps que la fenêtre.
C'est un problème de Layout, par défaut une JFrame a un BorderLayout, tu dois donc préciser sur quel bord tu ajoutes ton JPanel, sinon ils vont se mettre tout les deux sur le même bord.
Voir : A Visual Guide to Layout Managers
fen.add(d, BorderLayout.NORTH); fen.add(p, BorderLayout.CENTER);
Attention : ce n'est pas parce que ta fenêtre n'est plus visible que le programme est terminé, tu dois indiquer au programme de se fermer en même temps que la fenêtre.
fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);