aujourd'hui j'ai un petit problème, ce n'est probablement rien pour les pros ici :)Java - Quelle mise en page de Swing devrais-je utiliser?
Je veux avoir mes composants Swing dans une ligne horizontale. J'ai utilisé FlowLayout et changé la taille des composants sur componentResized() en fonction de la taille de la frame, mais il était souvent buggé (parfois le dernier composant était placé dans la ligne suivante) ... J'ai décidé d'utiliser BoxLayout, mais avec ce code:
down=new JPanel(new BoxLayout(down,BoxLayout.X_AXIS));
down.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));
down.add(Box.createHorizontalGlue());
down.setPreferredSize(new Dimension(300,35));
il se bloque avec:
Exception in thread "AWT-EventQueue-0" java.awt.AWTError: BoxLayout can't be shared
at javax.swing.BoxLayout.checkContainer(Unknown Source)
at javax.swing.BoxLayout.invalidateLayout(Unknown Source)
at javax.swing.BoxLayout.addLayoutComponent(Unknown Source)
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at ButtonFrame.<init>(chat.java:278)
at chat$1.run(chat.java:20)
aso...
Je ne sais pas quoi faire, je peux peut-être faire FlowLayout incapable de faire la 2e rangée, ou faire le travail de mise en page de la boîte?
Merci pour les réponses!
duplication possible: http://stackoverflow.com/questions/761341/boxlayout-cant-be-shared-error – Yossale