Avez-vous pas oublier de définir la taille préférée du panneau de contenu?
final JFrame frame = new JFrame("Scroll Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
final Box textArea = Box.createVerticalBox();
final JScrollPane textAreaScroll = new JScrollPane(textArea);
textAreaScroll.setPreferredSize(new Dimension(80,150)); /* essential! */
JButton addButton = new JButton("ADD");
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
textArea.add(new JLabel("abc"));
textArea.revalidate();
}
});
frame.getContentPane().add(textAreaScroll, BorderLayout.SOUTH);
frame.getContentPane().add(Box.createRigidArea(new Dimension(10,10)), BorderLayout.CENTER);
frame.getContentPane().add(addButton, BorderLayout.NORTH);
frame.pack();
frame.setVisible(true);
Dans cet exemple, la barre de défilement fonctionne correctement, mais si vous supprimez la ligne marquée comme « essentiel », il ne fonctionnera plus.
Oui, je le pouvais. Je considère ceci. Dans mon cas, il s'agit d'un jeu orienté sur le clavier, c'est donc un peu plus de code à implémenter avec une liste sur un ensemble d'étiquettes. Mais tu as raison. Je pourrais le faire de cette façon. – sproketboy