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ôlesBoutons (11)
précédent sommaire suivant
 

Pour créer un bouton, il faut créer une instance de l'une des classes qui héritent de la classe abstraite javafx.scene.control.ButtonBase.

  • Button - un bouton simple.
  • CheckBox - une case à cocher.
  • Hyperlink - permet d'afficher des hyperliens.
  • MenuButton - un bouton qui affiche un menu contextuel quand on l'active.
  • RadioButton - un bouton bascule radio.
  • ToggleButton - un bouton bascule.
  • SplitMenuButton - un bouton qui fonctionne comme un bouton normal quand on l'active, mais qui peut afficher un menu contextuel quand on le déroule.


Par exemple :

Code Java : Sélectionner tout
final Button button = new Button("Mon bouton");

Il est possible de changer le texte d'un bouton en modifiant la valeur de sa propriété text.

Mis à jour le 9 octobre 2014 bouye

Pour réagir à un clic sur un bouton, il suffit de placer un callback de type EventHandler<ActionEvent> dans sa propriété onAction.

Par exemple :

Code Java : Sélectionner tout
1
2
3
4
5
6
7
button.setOnAction(new EventHandler<ActionEvent>() { 
  
    @Override 
    public void handle(ActionEvent actionEvent) { 
        System.out.println("Salut le monde !"); 
    } 
});

ou :

Code Java : Sélectionner tout
button.setOnAction(actionEvent ->  System.out.println("Salut le monde !"));

Mis à jour le 18 septembre 2014 bouye

Pour mettre une icône sur un bouton, 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); 
button.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 à un bouton en mettant un nœud ou un contrôle complexe, interactif ou pas, dans cette propriété.

Mis à jour le 19 septembre 2014 bouye

Pour changer la position de l’icône par rapport au texte du bouton, il suffit de modifier la propriété contentDisplay en lui donnant une valeur de type javafx.scene.control.ContentDisplay.

Par exemple :

Code Java : Sélectionner tout
button.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);

Ici, désormais seule l’icône s'affiche, le texte du bouton n'est plus visible.

Il est également possible de spécifier l'espace en pixels qui sépare le graphique du texte du bouton en modifiant la valeur de la propriété graphicTextGap.

Mis à jour le 19 septembre 2014 bouye

Pour faire qu'un bouton soit le bouton par défaut, il faut modifier la valeur de sa propriété defaultButton et la mettre à la valeur true.

Par exemple :

Code Java : Sélectionner tout
button.setDefaultButton(true);

Le bouton interceptera désormais les saisies de la touche « Entrée » si aucun autre nœud ne s'en charge.

Mis à jour le 7 octobre 2014 bouye

Pour faire qu'un bouton soit le bouton d'annulation, il faut modifier la valeur de sa propriété cancelButton et la mettre à la valeur true.

Par exemple :

Code Java : Sélectionner tout
button.setCancelButton(true);

Le bouton interceptera désormais les saisies de la touche « Échappe » si aucun autre nœud ne s'en charge.

Mis à jour le 7 octobre 2014 bouye

Les bascules sont des classes qui implémentent l'interface javafx.scene.control.Toggle. À l'heure actuelle, ces classes sont :

  • RadioButton - un bouton disposant d'une partie circulaire à cocher ;
  • RadioMenuItem - un menu disposant d'une partie circulaire à cocher ;
  • ToggleButton - un bouton que l'on peut mettre dans un état sélectionné ou désélectionné.


Il est possible de grouper des bascules en modifiant la valeur de leur propriété toggleGroup et en leur donnant comme valeur une même instance de la classe javafx.scene.control.ToggleGroup. Le groupe s'assurera alors qu'il y a toujours au maximum une seule et unique bascule qui est sélectionnée à un instant donné.

Par exemple :

Code Java : Sélectionner tout
1
2
3
4
final ToggleGroup radioGroup = new ToggleGroup(); 
radioButton1.setToggleGroup(radioGroup); 
radioButton2.setToggleGroup(radioGroup); 
radioButton3.setToggleGroup(radioGroup);

Mis à jour le 19 septembre 2014 bouye

Pour savoir quelle bascule est sélectionnée dans un groupe, vous pouvez ajouter un écouteur de type InvalidationListener ou ChangeListener sur la propriété en lecture seule selectedToggle de ce groupe.

par exemple :

Code Java : Sélectionner tout
radioGroup.selectedToggleProperty().addListener(observable -> System.out.printf("Sélection %s", radioGroup.getSelectedToggle()).println());

Mis à jour le 7 octobre 2014 bouye

Pour ajouter des entrées dans un MenuButton, il faut ajouter des instances de la classe javafx.scene.control.MenuItem dans la liste observable items du bouton.

Par exemple :

Code Java : Sélectionner tout
1
2
3
4
5
6
7
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);

Pour retirer des entrées, il suffit de les enlever de la liste observable items.

Mis à jour le 9 octobre 2014 bouye

Pour ajouter des entrées dans un SplitMenuButton, il faut ajouter des instances de la classe javafx.scene.control.MenuItem dans la liste observable items du bouton.

Par exemple :

Code Java : Sélectionner tout
1
2
3
4
5
6
7
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);

Pour retirer des entrées, il suffit de les enlever de la liste observable items.

Note : quand une entrée est sélectionnée dans le menu contextuel, son action ne devient pas pour autant l'action par défaut du bouton menu divisé.

Mis à jour le 9 octobre 2014 bouye

Par défaut, la classe CheckBox supporte deux états : désélectionné et sélectionné. Il est cependant possible d'activer un mode trois états : désélectionné, non défini et sélectionné en activant la propriété allowIndeterminate de la case à cocher.

Par exemple :

Code Java : Sélectionner tout
checkBox.setAllowIndeterminate(true);

Lorsque cette propriété est mise à la valeur true, la case à cocher va alterner entre trois états :

État propriété selected propriété indeterminate Visuel
Désélectionnée false false Case vide
Non défini true Case contenant un trait horizontal
Sélectionnée true false Case cochée

Mis à jour le 9 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 © 2017 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.

 
Responsables bénévoles de la rubrique Java : Mickael Baron - Robin56 -