IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
logo

FAQ JavaFXConsultez toutes les FAQ

Nombre d'auteurs : 4, nombre de questions : 507, derni�re mise � jour : 2 novembre 2016  Ajouter une question

 

Cette FAQ a �t� r�alis�e � partir des questions fr�quemment pos�es sur le forum JavaFX de http://java.developpez.com ainsi que l'exp�rience personnelle des auteurs.

Nous tenons � souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne pr�tend pas non plus �tre compl�te. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant r�dacteur, lisez ceci.

Sur ce, nous vous souhaitons une bonne lecture.

SommaireSceneGraphInterface utilisateurContr�les�dition (26)
pr�c�dent sommaire suivant
 

Pour cr�er un champ d��dition textuel sur une seule ligne, vous devez cr�er une instance de la classe javafx.scene.control.TextField.

Par exemple :

Code Java : S�lectionner tout
final TextField textField = new TextField();

La propri�t� text de la classe TextField permet de positionner le texte sur le champ ou de savoir quand la valeur a �t� �dit�e.

Mis � jour le 7 octobre 2014 bouye

Pour cr�er un champ d��dition de mot de passe sur une seule ligne, vous devez cr�er une instance de la classe javafx.scene.control.PasswordField. Les chaines de texte saisies dans cet �diteur seront masqu�es par un caract�re unique.

Par exemple :

Code Java : S�lectionner tout
final PasswordField textField = new PasswordField();

La propri�t� text de la classe PasswordField permet de positionner le texte sur le champ ou de savoir quand la valeur a �t� �dit�e.

Les m�thodes copy() et cut() ont �t� surcharg�es et n'ont aucun effet sur ce contr�le de saisie,

Mis � jour le 7 octobre 2014 bouye

Pour cr�er une zone d��dition sur de multiples lignes, vous devez cr�er une instance de la classe javafx.scene.control.TextArea.

Par exemple :

Code Java : S�lectionner tout
final TextArea textArea = new TextArea();

La propri�t� text de la classe TextArea permet de positionner le texte sur le champ ou de savoir quand la valeur a �t� �dit�e.

Mis � jour le 7 octobre 2014 bouye

Pour savoir si le contenu d'un champ d��dition a �t� modifi�, il suffit de placer un �couteur de type InvalidationListener ou ChangeListener sur sa propri�t� text.

Par exemple :

Code Java : S�lectionner tout
textField.textProperty().addListener(observable -> System.out.println("Champ d'�dition modifi� !"));

Mis � jour le 15 mars 2015 bouye

Il est possible de modifier le texte dans un champ d��dition via plusieurs m�thodes d��dition pr�tes � l'emploi :

  • clear() - supprime tout le texte ;
  • deleteNextChar() - cette m�thode supprime le caract�re situ� apr�s le curseur de saisie ;
  • deletePreviousChart() - cette m�thode supprime le caract�re situ� avant le curseur de saisie ;
  • deleteText() - cette m�thode supprime le texte contenu entre les indices ou l'IndexRange pass�s en param�tre ;
  • insertText() - cette m�thode permet d�ins�rer du texte contenu � l'indice pass� en param�tre ;
  • replaceSelection() - cette m�thode remplace la s�lection actuelle par un nouveau contenu ;
  • replaceText() - cette m�thode permet de remplacer le texte contenu entre les indices ou l'IndexRange pass�s en param�tre.


Il est �galement bien s�r possible de modifier directement la valeur de la propri�t� text. Cependant, il est recommand� de passer par les m�thodes indiqu�es ici de mani�re � supporter les �volutions ou modifications futures de l'API ou les ports de JavaFX vers d'autres plateformes (ex.�: le remplacement du texte sur des plateformes mobiles ou tactiles ou plus modernes pourrait s'accompagner d'animations).

Mis � jour le 15 mars 2015 bouye

Pour savoir si la s�lection dans un champ d��dition a �t� modifi�e, il suffit de placer un �couteur de type InvalidationListener ou ChangeListener sur sa propri�t� en lecture seule selection.

Par exemple :

Code Java : S�lectionner tout
textField.selectionProperty().addListener(observable -> System.out.println("S�lection modifi�e dans le champ d'�dition !"));

La propri�t� selection contient une valeur de type javafx.scene.control.IndexRange qui permet de connaitre les indices de d�but et de fin de s�lection et de connaitre sa longueur. Cette valeur ne contient jamais la valeur null et est, par d�faut, initialis�e � la s�lection (0, 0). Un nouvel objet de type IndexRange est cr�� � chaque changement de s�lection.

Mis � jour le 15 mars 2015 bouye

Il existe plusieurs m�thodes pr�tes � l'emploi pour modifier la s�lection dans un champ d��dition :

  • deselect() - supprime toute s�lection ;
  • selectAll() - s�lectionne tout le texte ;
  • selectBackward() - s�lectionne un caract�re en arri�re en d�pla�ant le curseur de saisie (suivant la position du curseur de saisie par rapport � la s�lection actuelle, peut d�s�lectionner un caract�re) ;
  • selectEnd() - s�lectionne depuis la position actuelle jusqu�� la fin du texte tout en d�pla�ant le curseur de saisie ;
  • selectEndOfNextWord() - s�lectionne depuis la position actuelle jusqu�� la fin du prochain mot tout en d�pla�ant le curseur de saisie ;
  • selectForward() - s�lectionne un caract�re en avant en d�pla�ant le curseur de saisie (suivant la position du curseur de saisie par rapport � la s�lection actuelle, peut d�s�lectionner un caract�re) ;
  • selectHome() - s�lectionne depuis la position actuelle jusqu�au d�but du texte sans en d�placer le curseur de saisie ;
  • selectNextWord() - s�lectionne depuis la position actuelle jusqu�au d�but du prochain mot tout en d�pla�ant le curseur de saisie ;
  • selectPositionCaret() - s�lectionne depuis le point actuel et positionne le curseur de saisie � l'endroit indiqu� ;
  • selectPreviousWord() - s�lectionne depuis la position actuelle jusqu�au d�but du mot pr�c�dent tout sans d�placer le curseur de saisie ;
  • selectRange() - s�lectionne l'intervalle sp�cifi� et d�place le curseur de saisie � la fin de cet intervalle.

Mis � jour le 15 mars 2015 bouye

Pour copier la s�lection actuelle d'un champ d��dition dans le presse-papier, il suffit d'appeler la m�thode copy() du champ d��dition.

Par exemple :

Code Java : S�lectionner tout
textField.copy();

si la s�lection est vide, la valeur du presse-papier ne sera pas modifi�e.

Mis � jour le 15 mars 2015 bouye

Pour couper la s�lection actuelle d'un champ d��dition (c'est-�-dire copier sa valeur dans le presse-papier, puis effacer la s�lection), il suffit d'appeler la m�thode cut() du champ d��dition.

Par exemple :

Code Java : S�lectionner tout
textField.cut();

si la s�lection est vide, la valeur du presse-papier ne sera pas modifi�e.

Mis � jour le 15 mars 2015 bouye

Pour coller le contenu du presse-papier dans un champ d��dition, il suffit d'appeler la m�thode paste() du champ d��dition. Ceci remplacera la s�lection actuelle s'il y en a une, sinon le nouveau contenu sera ins�r� � l'emplacement du curseur de saisie.

Par exemple :

Code Java : S�lectionner tout
textField.paste();

Mis � jour le 15 mars 2015 bouye

Pour savoir si la position du curseur de saisie d'un champ d'�dition a �t� modifi�e, il suffit de placer un �couteur de type InvalidationListener ou ChangeListener sur sa propri�t� en lecture seule caretPosition.

Par exemple :

Code Java : S�lectionner tout
textField.caretPositionProperty().addListener(observable -> System.out.println("Position du curseur d��dition modifi�e dans le champ d'�dition !"));

Mis � jour le 15 mars 2015 bouye

Outre les diverses m�thodes qui permettent de changer la s�lection dans un champ d��dition, il est possible de sp�cifier la position du curseur de saisie en appelant la m�thode positionCaret() et en lui passant un nouvel indice en param�tre.

Par exemple :

Code Java : S�lectionner tout
textField.positionCaret(10);

Invoquer cette m�thode supprimera la s�lection actuelle.

Mis � jour le 15 mars 2015 bouye

Pour d�sactiver la saisie sur un contr�le de saisie, vous devez mettre sa propri�t� editable � la valeur false.

Par exemple :

Code Java : S�lectionner tout
textField.setEditable(false);

Cela d�sactivera toute saisie au clavier, au clavier virtuel ou via le menu contextuel du contr�le.

Mis � jour le 18 septembre 2014 bouye

Pour afficher un texte par d�faut ou une invite sur un contr�le de saisie, vous devez sp�cifier une valeur sur sa propri�t� promptText.

Par exemple :

Code Java : S�lectionner tout
loginField.setPromptText("Nom d'utilisateur");

Ce texte s'affichera uniquement quand le contr�le de saisie ne contient aucun texte.

Mis � jour le 18 septembre 2014 bouye

Pour proc�der � une validation lorsque l'utilisateur appuie sur la touche � Entr�e � apr�s avoir saisi son mot de passe, vous devez fournir un callback de type EventHandler<ActionEvent> dans la propri�t� onAction du champ de saisie de mots de passe.

Par exemple :

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
final PasswordField passwordField = new PasswordField(); 
passwordField.setPromptText("Mot de passe"); 
passwordField.setOnAction(new EventHandler<ActionEvent>() { 
    @Override public void handle(ActionEvent e) { 
        // Validation du mot de passe. 
        // R�action en cas de mot de passe valide. 
        // R�action en cas de mot de passe non valide. 
        passwordField.clear(); 
    } 
});

Ou :

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
final PasswordField passwordField = new PasswordField(); 
passwordField.setPromptText("Mot de passe"); 
passwordField.setOnAction(actionEvent -> { 
    // Validation du mot de passe. 
    // R�action en cas de mot de passe valide. 
    // R�action en cas de mot de passe non valide. 
    passwordField.clear(); 
});

Note : c'est une bonne pratique que de vider le contenu du contr�le de saisie une fois la validation termin�e.

Mis � jour le 7 octobre 2014 bouye

Pour forcer le retour � la ligne dans une instance de TextArea, vous devez modifier la valeur de sa propri�t� wrapText et la mettre � la valeur true.

Par exemple :

Code Java : S�lectionner tout
textArea.setWrapText(true);

Mis � jour le 19 septembre 2014 bouye

JavaFX met � disposition un clavier virtuel pour les champs de saisie lorsqu'une application s�ex�cute sur une plateforme embarqu�e.

Il est possible d'activer le clavier virtuel sur un ordinateur de bureau en utilisant le param�tre suivant de la JVM :

Code : S�lectionner tout
-Dcom.sun.javafx.virtualKeyboard=javafx

Un clavier tactile s'affichera � l��cran d�s qu'un contr�le de saisie gagnera le focus.

Pour le moment, il semble que JavaFX ne supporte que les claviers virtuels QWERTY.

Mis � jour le 7 octobre 2014 bouye

Il est possible de sp�cifier le type de clavier virtuel � utiliser sur un contr�le de saisie en modifiant la valeur attach�e � la cl� "vkType" dans les propri�t�s du contr�le de saisie. � l'heure actuelle, les valeurs suivantes sont admises :

  • "numeric" - un clavier num�rique ne contenant que des chiffres ;
  • "url" - un clavier destin� � saisir des URL web ;
  • "email" - un clavier destin� � saisir des adresses m�l ;
  • "text" - le clavier par d�faut.


Par exemple :

Code Java : S�lectionner tout
1
2
3
final TextField emailField = new TextFiel(); 
emailField.setPromptText("Adresse m�l"); 
emailField.getProperties().put("vkType", "email");

Ici, un clavier param�tr� pour saisir des adresses m�l sera affich� � l��cran lorsque le champ de saisie emailField aura le focus.

Mis � jour le 7 octobre 2014 bouye

� partir du JDK8_40, vous pouvez restreindre l��dition sur un contr�le de saisie en sp�cifiant une valeur de type javafx.scene.control.TextFormatter<V> dans sa propri�t� textFormatter.

Par exemple :

Code Java : S�lectionner tout
textField.setTextFormatter(integerOnlyFormatter);

La classe TextFormatter permet d'effectuer deux fonctions distinctes :
  • le filtrage des modifications apport�es au contenu du contr�le de saisie (ex. : �viter la saisie de certains caract�res) ;
  • convertir le texte saisi dans le contr�le par l'utilisateur en une valeur de type V qui sera contenue dans la propri�t� value du formateur. Dans le cas o� le programmeur modifie la propri�t� value du formateur, celui-ci convertira alors la valeur en texte � afficher dans le contr�le de saisie.


Il est possible d'avoir un formateur qui supporte l'une ou l'autre de ces fonctions ou les deux en fonction du constructeur de la classe que vous utiliserez.

Note : si jamais le formateur ne dispose pas de convertisseur, une exception de type IllegalStateException sera lev�e lorsque la m�thode setValue() est invoqu�e et sa propri�t� value est toujours � la valeur null.

Attention : il n'est pas possible de partager une m�me instance d'un formateur entre plusieurs contr�les de saisie.

Mis � jour le 15 mars 2015 bouye

Pour placer un filtre sur un formateur, vous devez, lors de son initialisation, lui fournir une instance de l'interface java.util.function.UnaryOperator<TextFormatter.Change> dans un de ses constructeurs. Vous devez impl�menter la m�thode apply() de l�op�rateur unaire pour impl�menter le filtrage.

Dans le corps de cette m�thode, vous pouvez tester les caract�res saisis dans le champ d��dition et valider ou non la modification en fonction de l'objet change re�u en param�tre de la m�thode. Si la modification doit �tre invalid�e, il vous suffit de retourner la valeur null. Dans le cas contraire, si la modification doit �tre valid�e, vous pouvez retourner l'objet change directement.

Par exemple :

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
final UnaryOperator<TextFormatter.Change> integerOnlyFilter = new UnaryOperator<TextFormatter.Change>() { 
  
    @Override 
    public TextFormatter.Change apply(TextFormatter.Change change) { 
        final String text = change.getText(); 
        return (text.isEmpty() || text .matches("[0-9]")) ? change : null; 
    } 
}; 
final TextFormatter<Integer> integerOnlyFormatter = new TextFormatter(integerOnlyFilter);

Ou :

Code Java : S�lectionner tout
1
2
3
4
5
final UnaryOperator<TextFormatter.Change> integerOnlyFilter = change -> { 
    final String text = change.getText(); 
    return (text.isEmpty() || text .matches("[0-9]")) ? change : null; 
}; 
final TextFormatter<Integer> integerOnlyFormatter = new TextFormatter(integerOnlyFilter);

Ici, nous rejetons tout caract�re qui n'est pas un chiffre, il est donc d�sormais impossible de saisir dans le champ d��dition des lettres, symboles, etc. Nous acceptons cependant les modifications qui ne contiennent pas de texte de mani�re � permettre les changements de position du curseur de saisie ou de s�lection de texte dans le champ d��dition. Nous avons donc cr�� un filtre qui ne permet de saisir que des nombres entiers positifs.

Il est possible de retrouver le texte d'origine non modifi� du contr�le d��dition en invoquant la m�thode getControlText() de l'objet change re�u en param�tre de la m�thode.

De plus, il est �galement possible de connaitre la valeur future du texte contr�le d��dition en cas de validation de la modification en invoquant la m�thode getControlNewText() de l'objet change re�u en param�tre de la m�thode.

Note : un m�me filtre peut �tre utilis� par plusieurs formateurs.

Mis � jour le 15 mars 2015 bouye

Pour placer un convertisseur sur un formateur, vous devez, lors de son initialisation, lui fournir une instance de la classe abstraite javafx.util.StringConverter<T> dans un de ses constructeurs. Vous devez impl�menter les m�thodes fromString() et toString() de la classe pour convertir une chaine de caract�res provenant du contr�le de saisie en objet de type T ou un objet de type T en texte � afficher dans le contr�le de saisie.

Par exemple :

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
final StringConverter<Integer> integerConverter = new StringConverter<Integer>() { 
  
    @Override 
    public String toString(Integer value) { 
        return (value == null) ? null : value.toString(); 
    }   
  
    @Override 
    public Integer fromString(String text) { 
        return (text == null || text.trim().isEmpty()) ? null : Integer.parseInt(text.trim()); 
    } 
}; 
final TextFormatter<Integer> integerOnlyFormatter = new TextFormatter(integerConverter, 0, integerOnlyFilter);

Ici, nous avons plac� dans notre formateur un convertisseur qui permet de g�n�rer et d'utiliser des nombres entiers. Nous avons �galement sp�cifi� la valeur par d�faut dans le formateur. Nous avons �galement utilis� le filtre pr�c�demment cr��.

La m�thode fromString() du convertisseur est invoqu�e lorsque l'utilisateur tente de valider le contenu de son champ d��dition, par exemple en appuyant sur la touche ENTR�E � la fin de la saisie ou lorsque le champ d��dition perd le focus lorsqu'on a cliqu� ailleurs dans l'interface ou qu'on utilise une touche pour changer le contr�le actif (ex. : la touche Tabulation).

La m�thode toString() du convertisseur est invoqu�e lorsque le programmeur utilise le setter de la propri�t� value du formateur.

Note : un m�me convertisseur peut �tre utilis� par plusieurs formateurs.

Mis � jour le 15 mars 2015 bouye

� partir du JDK8_40, pour cr�er un bouton fl�ch� (spinner en anglais), il vous faut cr�er une instance de la classe javafx.scene.control.Spinner<T>. Ici, T est le type des instances contenues dans le spinner.

Par exemple :

Code Java : S�lectionner tout
final Spinner spinner = new Spinner();

Cependant l'instance de la classe Spinner ainsi cr��e est vide et n'accepte aucune valeur, car elle n'est pas �ditable.

Vous pouvez permettre la modification de la valeur du bouton fl�ch� en modifiant la valeur de sa propri�t� editable et en lui donnant la valeur true.

Code Java : S�lectionner tout
spinner.setEditable(true);

Mis � jour le 15 mars 2015 bouye

Pour peupler un bouton fl�ch�, vous pouvez l'initialiser en lui passant une liste de valeurs potentielles lors de sa cr�ation :

  • il est possible de passer au constructeur une ObservableList<T> contenant les instances des valeurs l�gales pour le spinner.

    Par exemple :

    Code Java : S�lectionner tout
    final Spinner<String> spinner = new Spinner(FXCollections.observableArrayList("Fabrice", "John", "Pierre"));

    Ici, le bouton fl�ch� contient des chaines de caract�res pr�d�finies et sa valeur initiale est ��Fabrice��. Il est possible d'utiliser les fl�ches haut et bas pour naviguer entre les valeurs.

    Attention : si le bouton est �ditable, il est possible de saisir de nouvelles valeurs, cependant celles-ci ne seront pas automatiquement rajout�es dans la liste des valeurs pr�d�finies.
  • Dans le cas de nombres entiers ou de nombres flottants, il est possible de sp�cifier une plage de valeurs l�gales.

    Par exemple :

    Code Java : S�lectionner tout
    final Spinner<Integer> spinner = new Spinner(0, 10, 5);

    Ou encore :

    Code Java : S�lectionner tout
    final Spinner<Double> spinner = new Spinner(0d, 10d, 5d);

    Ici, le bouton fl�ch� contient la valeur initiale 5 et permet de naviguer dans une plage de valeurs comprises entre 0 et 10 par incr�ment de 1.

    Il est cependant possible de sp�cifier le pas d�incr�ment dans le constructeur :

    Par exemple :

    Code Java : S�lectionner tout
    final Spinner<Integer> spinner = new Spinner(0, 10, 5, 2);

    Ou encore :

    Code Java : S�lectionner tout
    final Spinner<Double> spinner = new Spinner(0d, 10d, 5d, 2d);

    Ici, le bouton fl�ch� contient la valeur initiale 5 et permet de naviguer dans une plage de valeurs comprises entre 0 et 10 par incr�ment de 2.

    Attention : si le bouton est �ditable, il est possible de saisir de nouvelles valeurs, y compris des valeurs qui ne sont pas des nombres ou qui sont en dehors de la plage de nombres indiqu�e.
  • Enfin, il est possible de sp�cifier une usine � valeurs (value factory en anglais) en passant en param�tre du constructeur une instance de la classe javafx.scene.control.SpinnerValueFactory<T>. Il est �galement possible de sp�cifier une usine � valeurs en modifiant la valeur de la propri�t� valueFactory du bouton fl�ch�.

    Il vous suffit alors de surcharger les m�thodes decrement() et increment() de cette classe de mani�re � modifier le contenu sa propri�t� value ce qui modifiera la valeur contenue dans le spinner.

    Par exemple :

    Code Java : S�lectionner tout
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    final Spinner<Integer> spinner = new Spinner(new SpinnerValueFactory() { 
      
        @Override 
        public void decrement(int steps) { 
            // D�cr�menter la valeur ici. 
            final Integer value = (Integer)getValue(); 
            final int val = (value == null) ? 0 : value; 
            setValue(val - steps); 
        } 
      
        @Override 
        public void increment(int steps) { 
            // Incrementer la valeur ici. 
            final Integer value = (Integer)getValue(); 
            final int val = (value == null) ? 0 : value; 
            setValue(val + steps); 
        } 
    });

    Ici, nous cr�ons une fabrique � valeurs enti�res. Cependant, comme nous n'avons pas sp�cifi� de valeur initiale, le bouton fl�ch� est initialement vide. Pour pallier ce probl�me, il nous faudrait �galement surcharger le constructeur de la classe anonyme.

    Par exemple :

    Code Java : S�lectionner tout
    1
    2
    3
    4
    5
    6
    7
    final Spinner<Integer> spinner = new Spinner(new SpinnerValueFactory() { 
        { 
            setValue(5); 
        } 
      
        [...] 
    });

    Ici, le bouton fl�ch� est initialis� � la valeur 5.

    Utiliser une telle fabrique permet par exemple de faire un spinner permettant de naviguer � travers un ensemble infini de valeurs num�riques, d'avoir un pas d�incr�ment non lin�aire (ex. : pass� une certaine valeur on saute de 10 en 10, puis de 100 en 100, etc.) ou encore de r�cup�rer des valeurs en effectuant une requ�te web ou aupr�s d'une base de donn�es.

    La classe SpinnerValueFactory dispose de plusieurs impl�mentations/classes filles statiques pr�tes � l'emploi telles que IntegerSpinnerValueFactory, etc.

    Attention : une fois de plus, si le bouton fl�ch� est �ditable, il peut accepter n'importe quelle valeur, m�me celles qui ne sont pas g�n�r�es par l'usine � valeurs.


Mis � jour le 15 mars 2015 bouye

Pour r�cup�rer la valeur d'un bouton fl�ch�, vous pouvez acc�der � sa propri�t� en lecture seule value.

Par exemple :

Code Java : S�lectionner tout
final Integer value = spinner.getValue();

Mis � jour le 15 mars 2015 bouye

Vous ne pouvez pas directement modifier la valeur d'un bouton fl�ch�. Cependant, vous pouvez invoquer ses m�thodes increment() et decrement() pour que le bouton interroge son usine � valeurs de mani�re � produire une nouvelle valeur qui sera alors appliqu�e au bouton. Il est possible de fournir un pas lorsqu'on invoque une de ces m�thodes.

Par exemple :

Code Java : S�lectionner tout
spinner.increment();

Ou :

Code Java : S�lectionner tout
spinner.decrement(10);

�videmment, il reste possible d'invoquer directement la m�thode setValue() sur l'usine � valeurs du spinner :

Code Java : S�lectionner tout
spinner.getValueFactory().setValue(5);

Mis � jour le 15 mars 2015 bouye

Pour restreindre l'�dition sur un bouton fl�ch�, vous devez sp�cifier un formateur dans la propri�t� textFormatter de l��diteur du bouton fl�ch�.

Par exemple :

Code Java : S�lectionner tout
spinner.getEditor().setTextFormatter(integerOnlyFormatter);

D�sormais, notre spinner ne permettra que la saisie de nombres entiers positifs.

Mis � jour le 15 mars 2015 bouye

Proposer une nouvelle r�ponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plut�t sur le forum de la rubrique pour �a


R�ponse � la question

Liens sous la question
pr�c�dent sommaire suivant
 

Les sources pr�sent�es sur cette page sont libres de droits et vous pouvez les utiliser � votre convenance. Par contre, la page de pr�sentation constitue une �uvre intellectuelle prot�g�e par les droits d'auteur. Copyright � 2025 Developpez Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'� trois ans de prison et jusqu'� 300 000 � de dommages et int�r�ts.