Pour une raison quelconque, je ne peux pas ce travail. Cela devrait être simple vraiment.java scrollpane avec flowlayout
J'ai un JFrame avec un BorderLayout
, qui contient un JPanel
(SUD) et un (CENTRE) JPanel (itemPanel).
itemPanel doit être enveloppé dans un scrollpane. Sa largeur = x, et tous ses enfants partagent sa longueur, donc cela fonctionne comme une table avec seulement 1 colonne.
Pour une raison quelconque, je ne peux pas obtenir le scrollpars pour afficher les barres de défilement (et défiler). Dans le JFrame:
setPreferredSize(dimension);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add("South",controlPanel);
JScrollPane scroll = new JScrollPane(itemPanel);
scroll.setBorder(null);
getContentPane().add("Center",scroll);
super.pack();
setVisible(true);
Initilizing et en ajoutant des panneaux-factices au itemPanel:
itemPanel = new ItemPanel(); // A JPanel with a flowlayout
itemPanel.setPreferredSize(new Dimension(dimension.width,0));
for(int i = 0; i < 20; i++){
JPanel p = new JPanel();
p.setPreferredSize(new Dimension(0,50));
p.setBackground(i%2 == 0 ? Color.GREEN : Color.YELLOW);
itemPanel.add(p);
}
si l'omission itemPanel.setPreferredSize(new Dimension(dimension.width,0));
le scrollpane montre les barres de défilement horizontales, mais étant donné que le FlowLayout ne dispose pas d'une largeur à suivre , il montre juste les composants dans une rangée.
Wow, c'était facile :) Merci! Bien que je ne comprends pas encore le problème, cela l'a résolu. – Peter