Bonsoir , je vous explique mon problème j'essaye d'organiser ma fenêtre comme celà mais je n y arrive pas du tout... :
Merci de votre compréhension.
Pièce jointe 144644
Version imprimable
Bonsoir , je vous explique mon problème j'essaye d'organiser ma fenêtre comme celà mais je n y arrive pas du tout... :
Merci de votre compréhension.
Pièce jointe 144644
Le JMenu -> Dan la JFrame, elle le gère très bien, pas à s'en soucier
contentpane -> BorderLayout: interface principale en Center, JPanel de droite en EAST
panel droite -> FlowLayout vertical: un deux troi bouton, un séparateur, un panel "labels" ou les labels directement dedans, à toi de voir
Tu peux me montrer un exemple stp
Tu peux montrer ce que tu as essayé de faire?
J ai seulement ma fenêtre avec mon JMenu mes jBUTTON et mes jLABEL mais pas placé on les voit même pas
tiens :
Code:
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 private JLabel leftLabel = new JLabel(); private JLabel rightLabel = new JLabel(); private JLabel 1Label = new JLabel("Info:"); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new JScrollPane(leftLabel), new JScrollPane(rightLabel)); public MaFrame(){ super(); this.setTitle(""); this.setSize(1000,700); this.setResizable(false); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setJMenuBar(this.creationJmenu()); this.setVisible(true); splitPane.setRightComponent(joueur1Label); add(splitPane); } private JMenuBar creationJmenu() { //Création des Objets JMenuBar jmb = new JMenuBar(); JMenu menu = new JMenu("Jeu"); JMenu edit = new JMenu("Editer"); JMenu taille = new JMenu("taille"); JMenuItem itemQuitter = new JMenuItem("Quitter"); JMenuItem itemPartie = new JMenuItem("CommencerPartie"); JMenuItem itemNormal = new JMenuItem("Normal"); JMenuItem itemPecran = new JMenuItem("Plein Ecran"); itemQuitter.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_J,InputEvent.CTRL_DOWN_MASK)); itemPecran.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_DOWN_MASK)); //Ajout des JMenuItem au JMenu menu.add(itemPartie); menu.add(itemQuitter); taille.add(itemNormal); taille.add(itemPecran); edit.add(taille); //Ajout des JMenu au JmenuBar jmb.add(menu); jmb.add(edit); //Ajout des listener au JMenuItem itemPartie.addActionListener(this); itemQuitter.addActionListener(this); itemNormal.addActionListener(this); itemPecran.addActionListener(this); return jmb; } public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); if (action.equals("Normal")){ this.setSize(400, 400); }else if(action.equals("Plein Ecran")){ this.setExtendedState(Frame.MAXIMIZED_BOTH); }else if(action.equals("Quitter")){ System.exit(0); } else if(action.equals("CommencerPartie")){ //nouvelle fenetre qui s'ouvre } } public static void main(String[] args){ MaFrame mframe = new MaFrame(); mframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mframe.setVisible(true); } }
mais c'est pas du tout ce que je veux le JScrollPane c'est seulement pour séparer
Bon, donc déjà tu vire le JSplitPane.
Pour la partie principale: tu fais ceci:
et tu as l'idée. A toi de peaufiner maintenant.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 JComponent central = creerInterfacePrincipale(), // (avec ce que tu veux dedans) JPanel right = new JPanel(); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add(central,BorderLayout.CENTER); this.getContentPane().add(right,BorderLayout.EAST); right.setLayout(new BoxLayout(right,BoxLayout.Y_AXIS)); right.add(new JLabel("1")); right.add(new JLabel("2")); right.add(new JSeparator(SwingConstants.HORIZONTAL)); right.add(new JButton("A")); right.add(new JButton("B")); right.add(new JButton("C"));
Merci :)
Comment puis-je faire pour décaler le JSeparator pour que le panel de droite soit moit collé au bord?
Excuse moi alors voilà j'ai repris ton exemple que tu m'as donné juste avant mais en y insérant mon JComponent rien ne s affiche je te montre ce que je veux ajouter:
J'en ai mis qu'un petit bout merci de ta compréhension.Code:
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 public class Jeu extends JPanel{ private EtatDePartie etatDePartie; private static boolean clicDroit = false; private static CaseTerrain[] caseTerrains = new CaseTerrain[2]; private GrilleJeu grilleJeu; public Jeu() { initData(); initLayout(); EvenementsPartie.debutPartie(etatDePartie); } private void initData() { JoueurHumain joueurHumain1 = new JoueurHumain("j1"); JoueurHumain joueurHumain2 = new JoueurHumain("j2"); joueurHumain1.setNumeroJoueur(1); joueurHumain2.setNumeroJoueur(2); joueurs.add(joueurHumain1); joueurs.add(joueurHumain2); etatDePartie = new EtatDePartie(joueurs.size(), joueurs); GenerateurCarte generateurCarte = new GenerateurCarte(); try { grilleJeu = generateurCarte.genererCarte(5, 5, 0, joueurs); } catch (WaterWoldExeption e) { e.printStackTrace(); } } private void initLayout() { CreationGrille grille = new CreationGrille(grilleJeu, joueurs); grille.addImageClicker(new CliqueGrille()); } private class CliqueGrille extends CreationGrille.ImageClicker { public void click(MouseEvent arg0, CaseTerrain caseTerrain) { CoordonneesTerrain coordonneesTerrain; TerrainJeu terrain = caseTerrain.getTerrain(); switch (terrain.getTypeTerrain()) { case MER: System.out.println("mer"); break; case PLAINE: if (arg0.getButton() == MouseEvent.BUTTON1) { clicDroit = false; ChoixAction choixAction = new ChoixAction(caseTerrain); } else { clicDroit =clickDroit(clicDroit, caseTerrain); } break; default: break; } } } public boolean clickDroit(boolean clicDroit,CaseTerrain caseTerrain){ if (clicDroit == false) { caseTerrains[0] = caseTerrain; clicDroit = true; } else { caseTerrains[1] = caseTerrain;
Vu que tu n'ajoute strictement rien dans ton JPanel, il n'est pas prêt d'afficher quelque chose. Je ne vois aucun appel à setLayout, ni aucun appel à add(....). Donc ton Panel Jeu est vide pour swing.
En fait c est ma grille qui je veux ajouter la grille de CreationGrille.