Bonjour,
Je crée des JComboBox et des JTextField dynamiquement lorsque je change la valeur de mon JComboBox
Le probleme est que ceci ne marche pas du tout, quand je sélectionne un Item parmi ma première JComboBox alors tout mon panneau contenant mes JComboBox et mes JTextField s efface ...
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 // class extends JFrame private ArrayList _listComposants; private JComboBox _firstCombo; private JTextField _firstText; private JScrollPane _compositionScPane; private JPanel _compositionPane; public Constructeur(){ _firstCombo = new JComboBox(); _firstText = new JTextField(); _listComposants = new ArrayList(); //remplissage de _firstCombo _listComposants.add(_firstCombo); _listComposants.add(_firstText); refreshComposants(); Container contentPane = this.getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(_compositionScPane,BorderLayout.EAST); this.setSize(600, 430); _firstCombo.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e) { if(e.getStateChange() == ItemEvent.SELECTED) { JComboBox _aCombo = new JComboBox(); JTextField _aText = new JTextField(); for(int i = 0; i<_listComboBoxDesignation.size() ; i++){ //remplissage de ma JComboBox _aCombo.addItem(_listComboBoxDesignation.get(i)); } _listComposants.add(_aCombo); _listComposants.add(_aText); refreshComposants(); } } }); } /** * Rafraichi l'affichage des ComboBox */ private void refreshComposants(){ _compositionPane= new JPanel(); _compositionPane.setLayout(new GridLayout((_listComposants.size()/2),2)); for(int i = 0;i<(_listComposants.size()/2);i++){ _compositionPane.add((JComboBox) _listComposants.get(i)); i++; _compositionPane.add((JTextField) _listComposants.get(i)); } _compositionScPane = new JScrollPane(_compositionPane); _compositionPane.paintAll(_compositionPane.getGraphics()); _compositionPane.repaint(); this.paintAll(this.getGraphics()); this.repaint(); }
Si quelqu'un a une idée pour rafraichir correctement mon panneau ca serait sympa !
Partager