bonjour,
je voudrais positionner tous les elements d'un panneau les uns en dessous des autres
par exemple:
un texte
un bouton
un bouton
un texte
...
comment puis je faire ?
merci
bonjour,
je voudrais positionner tous les elements d'un panneau les uns en dessous des autres
par exemple:
un texte
un bouton
un bouton
un texte
...
comment puis je faire ?
merci
Soit tu les places à la main :
pan.setLayout(null);
compostant.setBounds(int x, int y, int w, int h);
Soit tu utilise des gestionaires, renseigne toi sur les Layout (Grind, Box, ...);
regarde de ce coté : http://java.developpez.com/faq/java/...res_composants
si tu utilises swing regarde surtout ceci : http://javasearch.developpez.com/j2s...BoxLayout.html
SIte de sun avec exemple et un visuel de chaque layout :
http://java.sun.com/docs/books/tutor...ut/visual.html
je voudrais utiliser un BoxLayout.
voila mon code, ca ne marche pas :
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 JPanel panneau ; JRadioButton boutonOui; JRadioButton boutonNon; JLabel affichage; ButtonGroup groupe; public InterfaceGraph(String titre) { super(titre); panneau = new JPanel(new BoxLayout(this,BoxLayout.Y_AXIS)); JLabel question = new JLabel("Voulez-vous repondre à la question:"); JButton valider = new JButton("Valider"); boutonOui = new JRadioButton("oui"); boutonNon = new JRadioButton("non"); affichage = new JLabel(""); groupe = new ButtonGroup(); groupe.add(boutonOui); groupe.add(boutonNon); panneau.add(question); panneau.add(boutonOui); panneau.add(boutonNon); panneau.add(valider); panneau.add(affichage); this.getContentPane().add(panneau); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); this.setVisible(true); valider.addActionListener(this); }
Qu'est ce qui marche pas ? qu'est ce ça fait ?
Décris nous
j'ai l'erreur :
Exception in thread "main" java.awt.AWTError: BoxLayout can't be shared
at javax.swing.BoxLayout.checkContainer(BoxLayout.java:415)
at javax.swing.BoxLayout.invalidateLayout(BoxLayout.java:202)
at java.awt.Container.invalidate(Container.java:1417)
at java.awt.Component.addNotify(Component.java:5879)
at java.awt.Container.addNotify(Container.java:2493)
at javax.swing.JComponent.addNotify(JComponent.java:4469)
at java.awt.Container.addNotify(Container.java:2500)
at javax.swing.JComponent.addNotify(JComponent.java:4469)
at java.awt.Container.addNotify(Container.java:2500)
at javax.swing.JComponent.addNotify(JComponent.java:4469)
at java.awt.Container.addNotify(Container.java:2500)
at javax.swing.JComponent.addNotify(JComponent.java:4469)
at javax.swing.JRootPane.addNotify(JRootPane.java:680)
at java.awt.Container.addNotify(Container.java:2500)
at java.awt.Window.addNotify(Window.java:466)
at java.awt.Frame.addNotify(Frame.java:501)
at java.awt.Window.pack(Window.java:484)
at InterfaceGraph.<init>(InterfaceGraph.java:55)
at InterfaceGraph.main(InterfaceGraph.java:78)
essaye de remplacer cec i:
par ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part panneau = new JPanel(new BoxLayout(this,BoxLayout.Y_AXIS));
sinon donne l'ensemble de ta class ( si ce n'est pas trop long ....)
Code : Sélectionner tout - Visualiser dans une fenêtre à part panneau = new JPanel(new BoxLayout(panneau, BoxLayout.Y_AXIS));
Comme le dit l'erreur, c'est un pb de partage
Je pense que ça viens de ta première instruction :
panneau = new JPanel(new BoxLayout(this,BoxLayout.Y_AXIS));
j'ai essaye en remplacant le "this" par "panneau" mais j'ai toujours la meme erreur.
sinon essaie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 JPanel panneau = new JPanel(); panneau.setLayout(new BoxLayout(panneau, BoxLayout.PAGE_AXIS));
ok merci c'etait ca.
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