Bonjour à tous.
Voici le problème : j'ai une fenetre qui contient un JButton et un JScrollPane.
Ce JScrollPane est construit "sur" un JPanel. Le JPanel est vide au démarrage.
À chaque fois que je clique sur le JButton, j'ajoute un JTextfield au JPanel (et donc au JScrollPane).
Le truc, c'est que lorsque le JScrollpane est rempli de JTextfield, il ne déclenche pas automatiquement la scrollbar (comme il le fait d'habitude avec les JTables). Et donc, si je continue à cliquer sur mon JButton, les JTextfield
ajoutés ne sont plus visibles.
J'ai essayé de résoudre le problème en appelant plusieurs méthode de rafraichissement, mais ça ne marche toujours pas, la scrollbar refuse de s'activer.
Voici mon code :
Merci pour votre aide car je bloque depuis longtemps là-dessus...
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
40
41
42 public class test extends JFrame implements ActionListener { private static JButton Ajouter; private static JPanel panel; private static JScrollPane scrollPane; public static void main(String[] args) { JFrame f = new test(); f.setBounds(300, 300, 200, 220); f.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT)); panel = new JPanel(false); panel.setLayout(new FlowLayout(FlowLayout.LEFT)); panel.setPreferredSize(new Dimension(150,150)); scrollPane = new JScrollPane(panel); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); Ajouter = new JButton("Ajouter"); Ajouter.addActionListener((ActionListener) f); f.getContentPane().add(Ajouter); f.getContentPane().add(scrollPane); f.setVisible(true); } public void actionPerformed(ActionEvent evt) { if (evt.getSource() == Ajouter) { JTextField textfield = new JTextField(10); panel.add(textfield); panel.revalidate(); scrollPane.revalidate(); repaint(); getContentPane().validate(); } } }
Partager