Bonjour,
Mon problème est je pense assez simple. J'ai une classe startStopButton qui étend Button. Cette classe possède une donnée membre etatOn qui marche de cette manière :
- etatOn = false -> stop
- etatOn = true -> start
Je défini un constructeur par defaut qui ne reçoit aucun paramètre. Avec ce constructeur le bouton sera à "stop".
Par contre je veux un deuxième constructeur qui attend un booléen en paramètre. Si ce paramètre est à false, j'appelle le constructeur par defaut pour ne pas réécrire de code. Par contre si le paramètre est à true je veux que le bouton se crée directement à "start".
J'appelle donc "super()" après avoir testé la valeur du paramètre et mon erreur est la suivante : L'appel de super() doit être la première chose à faire.
Voici ma classe :
Que dois-je faire pour utiliser super après le test de mon paramètre ?
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 public class startStopButton extends Button { // Données membres private boolean etatOn; // Constructeur par defaut : Button stop public startStopButton() { super("Off"); setBackground(Color.red); this.etatOn = false; } // Constructeur à un paramètre public startStopButton(boolean etatOn) { if(etatOn) { super("On"); setBackground(Color.GREEN); this.etatOn = etatOn; } else { new startStopButton(); } } }
Partager