à supprimer
Pour la barre de menu dans une JFrame, il faut lire la javadoc
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Je vous joint une copie d'écran , j'ai voulu rajouter une image, par exemple placer la barre de menu, le texte 2 lignes en dessous au centre, et en dessous l'image du Morpion.
Mais tout se chevauche et ma grille ne prend pas en compte ma contrainte qui demande de mettre à des lignes/colonnes spécifiques.
Merci d'avance
Essaie avec ce code:
Si j'ai bien compris ce que tu veux, ça devrait marchait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 package test; import java.awt.Container; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; public class Morpion { public static void main(String [] args){ JFrame fen=new JFrame("Morpion"); JLabel texte=new JLabel("Bienvenue dans le jeu du Morpion !"); fen.setBounds(500, 500, 900, 800); Container contenu=fen.getContentPane(); contenu.setLayout(new GridBagLayout()); GridBagConstraints contrainte=new GridBagConstraints(); JMenuBar barre=new JMenuBar(); JMenu fichier=new JMenu("Fichier"); JMenu about=new JMenu("About"); JMenuItem regles=new JMenuItem("Règles du jeu"); JMenuItem nouvelle=new JMenuItem("Nouvelle partie"); JMenuItem scores=new JMenuItem("Scores"); JMenuItem propos=new JMenuItem("A propos de"); barre.add(fichier); fichier.add(nouvelle); fichier.add(scores); about.add(propos); about.add(regles); barre.add(about); fen.setJMenuBar(barre); contrainte.weighty=1; contrainte.weightx=1; contrainte.insets=new Insets(20,0,0,0); contrainte.gridheight=GridBagConstraints.REMAINDER; contrainte.gridwidth=GridBagConstraints.REMAINDER; contrainte.anchor=GridBagConstraints.PAGE_START; contenu.add(texte,contrainte); fen.setVisible(true); fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
PS: Si tu utilises un GridBagLayout, sois sur de ce que tu veux afficher avant de commence, sinon à chaque modification tu vas te prendre la tête....
Merci pour ta réponse, effectivement c'est bien ça que je veux faire, pas facile de s'y retrouver avec ce GridBagLayout, là j'essaie d'ajouter une image en dessous du message de bienvenue, j'y suis pas encore arrivé ^^
edit : oups, j'avais juste oublié d'enlever le :
contrainte.gridheight=GridBagConstraints.REMAINDER;
qui bloquait l'image en dessous, j'essaie de la déplacer maintenant...
Mais j'ai toujours un grand espace entre la ligne de bienvenue et mon image, du coup, à moins de faire un fen.pack(), il y a de l'espace vide...
En laissant le fen.pack() à la fin ça va bien, mais j'aimerais quand même comprendre pourquoi il me laisse cette espace vide quand je le met pas.
J'ai finis toutes les petites actions de ma menu bar (règles du jeu, à propos de, scores, saisie des noms de joueurs). Mais maintenant je me demande comment je vais faire pour afficher la fenêtre de jeu, tout en gardant en mémoire la fenêtre d'accueil, je ne sais pas si je me fais bien comprendre
En fait, je peux afficher la grille de jeu dans une nouvelle fenêtre et laisser la fenêtre d'accueil en attente, ça ça va. Mais je voudrais avoir ma grille de jeu "à la place" de ma fenêtre d'accueil, et que quand je finit ma partie, je puisse revenir sur la fenêtre d'accueil, cette deuxième option est elle réalisable pour un débutant comme moi ?
Merci encore à tous, ça avance tout doucement
Soit FAccueil et FJeu( fenetre d'accueil et de jeu )
pour passer de FAccueil à FJeu : new FJeu(); this.dispose()//this = FAccueil
pour passer de FJeu à FAccueil : new FAccueil(); this.dispose()//this = FJeu
(C'est pas le top mais simple à faire)
Après si tu veux toujours la même fenêtre mais que le contenu change.
Tu redéfinie contenue de ta JFrame avec setContaintPane(unPanel);
Ou alors tu utilise un Canvas. Pas trop trop compliquer à utiliser
Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager