J'essaye de faire de petits ajouts à du vieux code java qui ne supporte pas le swing. J'ai besoin d'ajouter une petite boîte de dialogue qui contient un panneau qui a une case à cocher et quelques champs de texte. Lorsque l'utilisateur clique sur la case à cocher, je veux désactiver ou activer les cases à cocher. Cette partie semble bien fonctionner mais les champs de texte ne sont pas correctement redessinés. Lorsque je clique sur la case, les champs n'apparaissent pas activés mais si je clique ensuite sur le panneau ou le champ de texte, vous voyez qu'ils sont activés (l'inverse est également vrai, lorsque je décoche la case, les champs restent activés) jusqu'à ce que vous essayez et cliquez sur eux et ils deviennent fantômes et ne deviennent pas sélectionnés). J'utilise setEnabled (boolean) pour définir l'état des champs. J'ai essayé d'appeler repaint et de valider sur les deux champs et le panneau après avoir changé le statut et cela ne semble pas fonctionner. J'ai également essayé de faire en sorte que les champs demandent la mise au point et cela n'a pas fonctionné. Quelqu'un a d'autres idées?Problèmes de repeinte AWT
//The class that contains all of this is of type Window
//Declaration of the components
private Panel _inputPanel;
private TextField min , max;
//This method adds to two text fields
public void addMinMaxtextFields(String min, String max) {
TextField minField = new TextField(min);
TextField maxField = new TextField(max);
this.min = minField;
this.max = maxField;
this.min.setEnabled(false);
this.max.setEnabled(false);
_inputPanel.add(minField);
_inputPanel.add(maxField);
}
//listener for the checkbox
public void itemStateChanged(ItemEvent e) {
Component[] components = _inputPanel.getComponents();
min.setEnabled(!min.isEnabled());
min.setVisible(true);
min.validate();
min.repaint();
_inputPanel.validate();
_inputPanel.repaint();
this.pack();
this.setSize(this.getWidth(), this.getHeight());
this.validate();
this.repaint();
/* do nothing */
}
Pouvez-vous ajouter des extraits de code? –
Désolé j'ai eu une urgence et ont été absent, j'ai ajouté les extraits de code. – Mike2012