cs_nanaou
Messages postés30Date d'inscriptionlundi 4 septembre 2006StatutMembreDernière intervention21 mars 2010
-
25 avril 2008 à 11:20
cs_nanaou
Messages postés30Date d'inscriptionlundi 4 septembre 2006StatutMembreDernière intervention21 mars 2010
-
25 avril 2008 à 15:10
Bonjour,
j'ai actuellement un petit problème avec un BoxLayout(Y_AXIS) :
j'y ajoute un panel qui s'affiche.
Ensuite, suite à une intéraction de l'utilisateur un tableau doit aparaître. Je l'ajoute donc au panel principal qui contient le BoxLayout.
Cepeandant, le tableau ne se met pas en dessous de l'autre élément (le 1er panel), mais par dessus. De plus le tableau s'affiche un peu à la fois qd on passe le curseur au dessus.
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 25 avril 2008 à 12:02
Personnellement je n'utilise que 3 Layout, BorderLayout, GridLayout et FlowLayout.
Cependant j'ai fait un petit test, et hormis le validate() que j'ai du ajouté, ça a l'air de fonctionner. Montre-nous la partie de ton code qui coince si tu veux bien.
public static void main(String... args) {
new Test1();
}
public Test1() {
super("Test boxlayout");
setSize(480, 300);
mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
bouton1 = new JButton("Premier composant");
bouton2 = new JButton("Composant ajouté");
bouton3 = new JButton("Ajouter un composant");
indiana_jules
Messages postés750Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention23 décembre 200822 25 avril 2008 à 13:27
Salut,
pourquoi tu l'ajoutes "à la volée". Il serait peut-être plus simple de l'insérer dès le départ en le rendant invisible (setVisible(false)). Ensuite, au moment d'appuyer sur le bouton, tu le rendrais visible.
Personnellement, je le ferai comme cela, ou alors si tu tiens vraiment à l'insérer à la volé, je te suggére d'utiliser le méconnu mais pourtant si puissant SpringLayout (existant en 1.4, pas mal en 1.5, génial en 1.6) qui te permet de manipuler tes composants de façon très puissante.
cs_nanaou
Messages postés30Date d'inscriptionlundi 4 septembre 2006StatutMembreDernière intervention21 mars 2010 25 avril 2008 à 15:10
Salut,
Si je met le tableau après c'est parce qu'on l'utilise uniquement suite au chargement d'un fichier. Le tableau est différent selon le fichier...
Voici mon bout de code :
// Le commentaire correspond à ce que je souhaite vraiment effectuer (BoxLayout vertical)
Box box_up=new Box(BoxLayout.X_AXIS);
box_up.add(this.panel_fichier);
box_up.add(this.panel_elements); // Celui-ci marche très bien
this.panel=(JPanel) this.getContentPane();
this.panel.setLayout(new BorderLayout(10, 10)); // changement de marges ne fait rien (40, 40) idem que (10, 10)
//this.panel.setLayout(new BoxLayout(this.panel, BoxLayout.Y_AXIS));
public maj_tableau() {
this.panel.add(this.scrollpane, BorderLayout.SOUTH); // se met au centre
//this.panel.add(this.scrollpane)
this.panel.revalidate();
}
// Si l'on change les valeurs BorderLayout.NORTH et BorderLayout.SOUTH par exemple en NORTH - CENTER, ..., tout se superpose.