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 (110)
pr�c�dent sommaire suivant
 

Un contr�le est un type de n�ud graphique qui h�rite de la classe javafx.scene.control.Control. Un contr�le est �galement une Region. Il s'agit de widgets, de composants graphiques destin�s � construire une interface graphique et � interagir avec l'utilisateur. On trouvera par exemple des boutons, listes graphiques, arbres, tables ou encore boites d�roulantes.

Les contr�les de l'API JavaFX peuvent voir leur apparence modifi�e via CSS. Ils sont �galement skinnable : pour chaque contr�le, il est possible de remplacer la classe charg�e de leur apparence par une autre.

Grosso modo, un contr�le peut �tre vu comme un ensemble de trois classes qui collaborent en suivant le patron de conception MVC classique (mod�le - vue - contr�leur) :

  • le contr�le lui-m�me qui est manipul� par le programmeur - il s'agit du mod�le du contr�le qui contient son �tat gr�ce � ses propri�t�s ;
  • la Skin (peau) qui est responsable de son apparence - il s'agit de la vue ;
  • le Behavior (comportement) qui est responsable de la mani�re dont le contr�le fonctionne - il s'agit du contr�leur. Actuellement, cette partie de l'API n'est pas publique, il est cependant possible de voir le code source des classes Behavior des contr�les existants via le Mercurial de l'OpenJFX.

Mis � jour le 16 septembre 2014 bouye

Pour cr�er une zone de d�filement (scroll pane), vous devez instancier un objet de type javafx.scene.control.ScrollPane et placer votre n�ud graphique dans sa propri�t� content.

Par exemple :

Code Java : S�lectionner tout
1
2
final ScrollPane scrollPane = new ScrollPane(); 
scrollPane.setContent(aNode);

Des barres de d�filement seront affich�es, si les dimensions du n�ud d�passent les dimensions d'affichage et de mise en page de la zone de d�filement.

Note : contrairement � Swing, ici en JavaFX il n'est pas besoin de cr�er des zones de d�filement pour les contr�les TextArea, ListView, TreeView, TableView et TreeTableView. Ces contr�les disposent de leur propre barre de d�filement qui sera utilis�e lorsqu'il n'y a pas assez de place pour afficher leur contenu.

Mis � jour le 2 octobre 2014 bouye

Pour cr�er des onglets, vous devez instancier des objets de type javafx.scene.control.Tab et placer vos n�uds graphiques dans leur propri�t� content. Vous devez ensuite cr�er un gestionnaire d'onglets (tab pane) de type javafx.scene.control.TabPane et placer les onglets dans sa liste observable tabs.

Par exemple :

Code Java : S�lectionner tout
1
2
3
4
5
6
7
final Rectangle rectangle = new Rectangle(0, 0, 150, 100); 
rectangle.setFill(Color.RED); 
final Tab tab1 = new Tab("Onglet 1"); 
tab1.setContent(rectangle); 
final Tab tab2 = new Tab("Onglet 2"); 
TabPane tabPane = new TabPane(); 
tabPane.getTabs().setAll(tab1, tab2);

Ce qui nous donne :



Ici, notre premier onglet contient un rectangle rouge, tandis que le second onglet est vide.

Pour retirer des onglets, il suffit de les retirer de la liste observable tabs du gestionnaire d'onglets.

Mis � jour le 2 octobre 2014 bouye

Pour changer le texte d'un onglet, il suffit de modifier la valeur de sa propri�t� text.

Par exemple :

Code Java : S�lectionner tout
tab.setText("Un onglet");

Mis � jour le 2 octobre 2014 bouye

Il est possible de placer une ic�ne sur un onglet en modifiant la valeur de sa propri�t� graphic.

Code Java : S�lectionner tout
1
2
3
final Image tab1Image = new Image(getClass().getResource("tab1icon.png").toExternalForm()); 
final ImageView tab1Icon = new ImageView(tab1Image); 
tab1.setGraphic(tab1Icon);

Note : cette propri�t� accepte n'importe quel type de n�ud graphique, il est donc possible d'y placer un affichage riche et plus complexe qu'une simple image.

Mis � jour le 2 octobre 2014 bouye

Il est possible d'afficher un bouton permettant de fermer un onglet en modifiant la valeur de sa propri�t� closable.

Par exemple :

Code Java : S�lectionner tout
tab.setClosable(true);

Quand la valeur est true, l'onglet dispose d'un petit bouton suppl�mentaire qui permet de le fermer. Le bouton n'apparait pas si la valeur de la propri�t� est false.

Il est �galement possible de sp�cifier une politique concernant la fermeture des onglets sur le gestionnaire d'onglets en modifiant sa propri�t� tabClosingPolicy et en lui donnant comme valeur un objet de type javafx.scene.control.TabPane.TabClosingPolicy :

  • TabClosingPolicy.SELECTED_TAB - seul l'onglet s�lectionn� affiche le bouton permettant la fermeture, s'il est configur� pour pouvoir �tre ferm� ;
  • TabClosingPolicy.ALL_TABS - tous les onglets qui peuvent �tre ferm�s affichent leur bouton de fermeture ;
  • TabClosingPolicy.UNAVAILABLE - les utilisateurs ne peuvent pas fermer les onglets.


Par exemple :

Code Java : S�lectionner tout
tabPane.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE);

Mis � jour le 2 octobre 2014 bouye

Pour d�tecter les tentatives de fermeture d'un onglet, il faut placer un callback de type EventHandler<Event> sur la propri�t� onCloseRequest de l'onglet.

Code Java : S�lectionner tout
1
2
3
4
5
6
7
tab.setOnCloseRequest(new EventHandler<Event>() { 
  
    @Override 
    public void handle(Event event) { 
        System.out.println("Tentative de fermeture de l'onglet."); 
    } 
});

Ou :

Code Java : S�lectionner tout
tab.setOnCloseRequest(event -> System.out.println("Tentative de fermeture de l'onglet."));

Il est alors possible d�emp�cher la fermeture de l'onglet en invoquant la m�thode consume() de l��v�nement pass� en param�tre.

Si la fermeture est autoris�e, il est �galement possible d'utiliser un callback pour d�tecter que la fermeture est effective en pla�ant un objet de type EventHandler<Event> sur la propri�t� onClosed de l'onglet.

Par exemple :

Code Java : S�lectionner tout
1
2
3
4
5
6
7
tab.setOnClosed(new EventHandler<Event>() { 
  
    @Override 
    public void handle(Event event) { 
        System.out.println("Onglet ferm�."); 
    } 
});

Ou :

Code Java : S�lectionner tout
tab.setOnClosed(event -> System.out.println("Onglet ferm�."));

Mis � jour le 2 octobre 2014 bouye

Pour cr�er un accord�on, vous devez instancier des objets de type javafx.scene.control.TitledPane et placer vos n�uds graphiques dans leur propri�t� content. Vous devez ensuite cr�er l�accord�on lui-m�me qui est de type javafx.scene.control.Accordion et placer les panneaux dans sa liste observable panes.

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
19
20
21
22
23
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final TitledPane titledPane1 = new TitledPane("Contenu 1", new Button("Bouton 1")); 
        final TitledPane titledPane2 = new TitledPane("Contenu 2", new Button("Bouton 2")); 
        final TitledPane titledPane3 = new TitledPane("Contenu 3", new Button("Bouton 3")); 
        final TitledPane titledPane4 = new TitledPane("Contenu 4", new Button("Bouton 4")); 
        final Accordion accordion = new Accordion(); 
        accordion.getPanes().setAll(titledPane1, titledPane2, titledPane3, titledPane4); 
        accordion.setExpandedPane(titledPane1); 
        final StackPane root = new StackPane(); 
        root.getChildren().add(accordion); 
        final Scene scene = new Scene(root, 300, 250); 
        primaryStage.setTitle("Test de l'accord�on"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ce qui nous donne :



Pour retirer des panneaux, il suffit de les retirer de la liste observable panes de l�accord�on.

Mis � jour le 13 octobre 2014 bouye

Pour cr�er une barre de progression, il faut instancier un objet de type javafx.scene.control.ProgressBar. La propri�t� progress de la classe ProgressBar permet ensuite de sp�cifier la progression actuelle dans la barre.

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
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final ProgressBar progressBar = new ProgressBar(); 
        progressBar.setProgress(0.5); 
        final StackPane root = new StackPane(); 
        root.getChildren().add(progressBar); 
        final Scene scene = new Scene(root, 300, 250); 
        primaryStage.setTitle("Test de la barre de progression"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ce qui nous donne :



Ici nous avons sp�cifi� une valeur de progression de 0.5 ce qui remplit la barre � moiti�.

Par d�faut la propri�t� progress a une valeur �gale � -1, ce qui place la barre dans un �tat ind�termin� : une animation s'effectue de droite � gauche et de gauche � droite.



Une valeur de 0 r�sulte en une barre vide tandis qu'une valeur de 1 r�sulte en une barre pleine.

Mis � jour le 6 octobre 2014 bouye

Pour cr�er un indicateur de progression, il faut instancier un objet de type javafx.scene.control.ProgressIndicator. La propri�t� progress de la classe ProgressIndicator permet ensuite de sp�cifier la progression actuelle dans l'indicateur.

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
19
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final ProgressIndicator progressIndicator = new ProgressIndicator(); 
        progressIndicator.setMaxSize(64, 64); 
        progressIndicator.setProgress(0.5); 
        final StackPane root = new StackPane(); 
        root.getChildren().add(progressIndicator); 
        final Scene scene = new Scene(root, 300, 250); 
        primaryStage.setTitle("Test de l'indicateur de progression"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ce qui nous donne :



Ici, nous avons sp�cifi� une valeur de progression de 0.5 ce qui remplit l'indicateur � moiti�. Nous avons �galement fix� les dimensions maximales de l'indicateur pour �viter qu'il ne se redimensionne et prenne toute la surface d'affichage.

Par d�faut la propri�t� progress a une valeur �gale � -1, ce qui place l'indicateur dans un �tat ind�termin� : une animation s'effectue avec des cercles color�s qui tournent autour du centre de l'indicateur.



Une valeur de 0 r�sulte en un indicateur vide tandis qu'une valeur de 1 r�sulte en un indicateur plein.

Mis � jour le 6 octobre 2014 bouye

Pour cr�er un s�lecteur de couleurs, il faut instancier un objet de type javafx.scene.control.ColorPicker. La propri�t� value de la classe ColorPicker permet de sp�cifier la couleur actuellement s�lectionn�e en lui donnant comme valeur une instance de la classe javafx.scene.paint.Color.

Par exemple :

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final ColorPicker colorPicker = new ColorPicker(); 
        final StackPane root = new StackPane(); 
        root.getChildren().add(colorPicker); 
        final Scene scene = new Scene(root, 300, 250); 
        primaryStage.setTitle("Test du s�lecteur de couleurs"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ce qui nous donne :



Le s�lecteur de couleurs se pr�sente sous la forme d'une boite d�roulante au contenu non �ditable. Un menu pr�sentant une s�lection de couleur s'affiche lorsqu�on d�roule la boite et il est possible d'afficher une boite de dialogue permettant d��diter plus finement la couleur.

Mis � jour le 8 octobre 2014 bouye

Pour cr�er un s�lecteur de pages, il faut instancier un objet de type javafx.scene.control.Pagination. La propri�t� pageCount de la classe Pagination permet ensuite de sp�cifier le nombre total de pages tandis que la propri�t� currentPageIndex permet de sp�cifier l'index de la page actuellement s�lectionn�e.

Par exemple :

Code Java : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final Pagination pagination = new Pagination(4); 
        final StackPane root = new StackPane(); 
        root.getChildren().add(pagination); 
        final Scene scene = new Scene(root, 300, 250); 
        primaryStage.setTitle("Test de s�lecteur de page"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}


Ce qui nous donne :



Ici, le s�lecteur de pages se place de lui-m�me en bas de la surface d'affichage. L'index de la page actuelle est 0 et les pages sont num�rot�es de 1 � nombre de pages + 1.

Mis � jour le 6 octobre 2014 bouye

Pour �tre notifi� des changements de page dans un s�lecteur de pages, il suffit de placer un �couteur de type InvalidationListener ou ChangeListener sur sa propri�t� currentPageIndex.

Par exemple :

Code Java : S�lectionner tout
pagination.currentPageIndexProperty().addListener(observale -> System.out.printf("Nouvelle page %d", pagination.getCurrentPageIndex()).println());

Mis � jour le 6 octobre 2014 bouye

Pour cr�er une r�glette, il faut instancier un objet de type javafx.scene.control.Slider. La propri�t� value de la classe Slider permet ensuite de sp�cifier la position du curseur sur la r�glette.

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
19
20
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final Slider slider = new Slider(); 
        slider.setValue(50); 
        slider.setShowTickMarks(true); 
        slider.setMajorTickUnit(20); 
        final StackPane root = new StackPane(); 
        root.getChildren().add(slider); 
        final Scene scene = new Scene(root, 300, 250); 
        primaryStage.setTitle("Test de la r�glette"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ce qui nous donne :



Ici, nous avons positionn� le curseur au centre de la r�glette et nous avons choisi d'afficher des graduations le long de la barre.

Il est possible de modifier la valeur minimale de la r�glette en changeant la valeur de la propri�t� min. La valeur par d�faut de cette propri�t� est 0.

Il est possible de modifier la valeur maximale de la r�glette en changeant la valeur de la propri�t� max. La valeur par d�faut de cette propri�t� est 100.

Mis � jour le 6 octobre 2014 bouye

Pour cr�er une infobulle, il vous faut cr�er une instance de la classe javafx.scene.control.Tooltip. Vous pouvez modifier le texte de cette infobulle en modifiant la valeur de sa propri�t� text.

Par exemple :

Code Java : S�lectionner tout
final Tooltip tooltip = new Tooltip("Salut le monde !");

Mis � jour le 8 octobre 2014 bouye

Les n�uds graphiques qui h�ritent de la classe Control disposent de la propri�t� tooltip qui permet de placer une infobulle sur eux. Si cette propri�t� n'a pas une valeur �gale � null, l'infobulle sera invoqu�e lorsque l'utilisateur laisse son curseur de souris immobile quelques instants au-dessus du contr�le.

Par exemple :

Code Java : S�lectionner tout
myControl.setTooltip(tooltip);

Pour des types de n�uds qui ne sont pas des contr�les et ne disposent pas de cette propri�t�, il est possible de leur ajouter le support de la gestion des infobulles en invoquant la m�thode statique install() de la classe Tooltip :

Code Java : S�lectionner tout
Tooltip.install(rectangle, tooltip);

Il est possible d'invoquer la m�thode statique uninstall() de la classe Tooltip pour retirer une infobulle plac�e sur un n�ud :

Code Java : S�lectionner tout
Tooltip.uninstall(rectangle, tooltip);

Mis � jour le 8 octobre 2014 bouye

Pour mettre une ic�ne sur une infobulle, il suffit de modifier la valeur de sa propri�t� graphic et de lui donner comme nouvelle valeur une ImageView contenant une Image.

Code Java : S�lectionner tout
1
2
3
final Image image = new Image(getClass().getRessource("Ok.png").toExternalForm()); 
final ImageView icon = new ImageView(image); 
tolltip.setGraphic(icon);

Note : cette propri�t� accepte n'importe quel type de n�ud graphique. Il est donc possible de donner un affichage ou un fonctionnement riche � une infobulle en mettant un n�ud ou un contr�le complexe, interactif ou pas, dans cette propri�t�.

Mis � jour le 8 octobre 2014 bouye

Pour cr�er un panneau divis�, il vous faut cr�er une instance de la classe javafx.scene.control.SplitPane. Vous pouvez ensuite modifier son contenu en ajoutant des n�uds graphiques dans sa liste observable items, ce qui cr�era autant de divisions que n�cessaire.

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
19
20
21
22
23
24
25
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final Region region1 = new Region(); 
        region1.setStyle("-fx-background-color: red;"); 
        final Region region2 = new Region(); 
        region2.setStyle("-fx-background-color: green;"); 
        final Region region3 = new Region(); 
        region3.setStyle("-fx-background-color: blue;"); 
        final SplitPane splitPane = new SplitPane(); 
        splitPane.getItems().setAll(region1, region2, region3); 
        splitPane.setDividerPositions(0.33, 0.66); 
        final StackPane root = new StackPane(); 
        root.getChildren().add(splitPane); 
        final Scene scene = new Scene(root, 300, 250); 
        primaryStage.setTitle("Test du panneau divis�"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ce qui nous donne :



L'utilisateur peut d�placer les divisions avec la souris de mani�re � changer la taille de chacune des zones affich�es.

Il est possible de positionner individuellement chaque s�paration en invoquant la m�thode setDividerPosition() tandis que la m�thode setDividerPositions() (avec un 's' � position) sert � modifier les positions de toutes les s�parations.

Mis � jour le 9 octobre 2014 bouye

Il est possible de changer l'orientation du panneau divis� en modifiant la valeur de sa propri�t� orientation et en lui donnant une valeur d'un objet de type javafx.geometry.Orientation :

  • Orientation.HORIZONTAL - la valeur par d�faut, le contenu est affich� c�te � c�te horizontalement ;
  • Orientation.VERTICAL - le contenu est affich� superpos� � la verticale.


Par exemple :

Code Java : S�lectionner tout
splitPane.setOrientation(Orientation.VERTICAL);

Ce qui nous donne :

Mis � jour le 9 octobre 2014 bouye

Pour cr�er une barre d'outils, il faut cr�er une instance de la classe javafx.scene.control.ToolBar et remplir sa liste observable items avec des n�uds graphiques.

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
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
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        final Button button = new Button("Bouton"); 
        final CheckBox checkBox = new CheckBox("Case � cocher"); 
        final RadioButton radioButton = new RadioButton("Bouton radio"); 
        final ToolBar toolBar = new ToolBar(); 
        toolBar.getItems().setAll(button, new Separator(), checkBox, new Separator(), radioButton); 
        toolBar.getItems().addAll(new Separator(), createMenuButton()); 
        toolBar.getItems().addAll(new Separator(), createSplitMenuButton()); 
        final BorderPane root = new BorderPane(); 
        root.setTop(toolBar); 
        final Scene scene = new Scene(root, 300, 250); 
        primaryStage.setTitle("Test de la barre d'outils"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    private MenuButton createMenuButton() { 
        final MenuItem imageItem = new MenuItem("Image..."); 
        final MenuItem pdfItem = new MenuItem("PDF..."); 
        final Menu exportMenu = new Menu("Export"); 
        exportMenu.getItems().setAll(imageItem, pdfItem); 
        final MenuItem propertiesItem = new MenuItem("Propri�t�s..."); 
        final MenuButton menuButton = new MenuButton(); 
        menuButton.getItems().setAll(exportMenu, new SeparatorMenuItem(), propertiesItem); 
        return menuButton; 
    } 
  
    private SplitMenuButton createSplitMenuButton() { 
        final MenuItem imageItem = new MenuItem("Image..."); 
        final MenuItem pdfItem = new MenuItem("PDF..."); 
        final Menu exportMenu = new Menu("Export"); 
        exportMenu.getItems().setAll(imageItem, pdfItem); 
        final MenuItem propertiesItem = new MenuItem("Propri�t�s..."); 
        final SplitMenuButton splitMenuButton = new SplitMenuButton(); 
        splitMenuButton.getItems().setAll(exportMenu, new SeparatorMenuItem(), propertiesItem); 
        return splitMenuButton; 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ici, nous avons cr�� une barre d'outils contenant plusieurs types de boutons ainsi que des s�parateurs. Un menu d�roulant permettant d�acc�der aux derniers �l�ments de la barre est affich� lorsqu'il n'y a pas assez d'espace pour afficher compl�tement tout le contenu. L'orientation des s�parateurs est modifi�e pour s'adapter au menu.



Pour retirer des n�uds graphiques de la barre d'outils, il suffit de les retirer de la liste observable items.

Mis � jour le 13 octobre 2014 bouye

Il est possible de changer l'orientation d'une barre d'outils en modifiant la valeur de sa propri�t� orientation et en lui donnant une valeur d'un objet de type javafx.geometry.Orientation :

  • Orientation.HORIZONTAL - la valeur par d�faut, le contenu est affich� c�te � c�te horizontalement ;
  • Orientation.VERTICAL - le contenu est affich� superpos� � la verticale.


Par exemple :

Code Java : S�lectionner tout
1
2
3
toolBar.setOrientation(Orientation.VERTICAL); 
// root.setTop(toolBar); 
root.setLeft(toolBar);

Ce qui nous donne :

Mis � jour le 13 octobre 2014 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.