Polygone avec jpanel
skflers61
Messages postés
43
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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);