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

Pour afficher un label sur plusieurs lignes, il suffit de modifier sa propri�t� wrapText et de passer sa valeur � true.

Par exemple :

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

Mis � jour le 19 septembre 2014 bouye

Pour mettre une ic�ne sur un label, 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); 
label.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 label 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 label, 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
label.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);

Ici, d�sormais seule l�ic�ne s'affiche, le texte du label n'est plus visible.

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

Mis � jour le 19 septembre 2014 bouye

Pour afficher du texte riche, il va vous falloir utiliser un gestionnaire de mise en page d�di� de type javafx.scene.text.TextFlow. Bien qu'il soit possible d'y int�grer n'importe quel type de n�uds graphiques, ce gestionnaire est principalement d�di� � la mise en page de n�uds de type javafx.scene.text.Text avec les c�sures, retours � la ligne et la justification qui s'imposent.

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
public class Main extends Application { 
  
    @Override 
    public void start(Stage primaryStage) { 
        String string = "Salut le monde !\n Portez ce vieux whisky au juge blond qui fume.\n The quick brown fox jumps over the lazy dog.\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum nec ante augue. Quisque congue ligula eget nisi consequat ornare. Ut finibus nibh quis interdum efficitur. Pellentesque varius vehicula arcu, ultricies hendrerit magna dictum sit amet. Praesent pharetra luctus quam, sed maximus turpis ornare id."; 
        final Color[] colors = {Color.BLACK, Color.BLUE, Color.RED, Color.GREEN, Color.GRAY, Color.CHOCOLATE}; 
        final String[] families = {"System", "Monospace", "Arial", "Lucida", "Blackadder ITC", "Broadway", "Castellar"}; 
        final int[] sizes = {8, 9, 10, 12, 16, 18, 22}; 
        final FontPosture[] postures = FontPosture.values(); 
        final FontWeight[] weights = FontWeight.values(); 
        final TextFlow textFlow = new TextFlow(); 
        textFlow.setTextAlignment(TextAlignment.JUSTIFY); 
        textFlow.setLineSpacing(-5); 
        final StackPane root = new StackPane(); 
        final String[] tokens = string.split(" +"); 
        for (String token : tokens) { 
            final Text text = new Text(token); 
            final Color color = colors[(int) (colors.length * Math.random())]; 
            final int size = sizes[(int) (sizes.length * Math.random())]; 
            final String family = families[(int) (families.length * Math.random())]; 
            final FontPosture posture = postures[(int) (postures.length * Math.random())]; 
            final FontWeight weight = weights[(int) (weights.length * Math.random())]; 
            final Font font = Font.font(family, weight, posture, size); 
            final boolean underline = Math.random() > 0.90; 
            text.setFill(color); 
            text.setFont(font); 
            text.setUnderline(underline); 
            textFlow.getChildren().add(text); 
            if (!token.endsWith("\n")) { 
                textFlow.getChildren().add(new Text(" ")); 
            } 
        } 
        root.getChildren().add(textFlow); 
        final Scene scene = new Scene(root, 300, 250); 
        primaryStage.setTitle("Test de texte riche"); 
        primaryStage.setScene(scene); 
        primaryStage.show(); 
    } 
  
    public static void main(String[] args) { 
        launch(args); 
    } 
}

Ce qui nous donne :



Ici, nous avons cr�� un gestionnaire de texte o� chaque mot s'affiche � une taille diff�rente et avec une couleur et police diff�rente. Nous avons �galement diminu� l'espace interligne et nous avons demand� � ce que le texte ait un alignement justifi�.

Mis � jour le 6 octobre 2014 bouye

Pour attacher une instance de la classe Label � un n�ud quelconque, vous devez modifier la valeur de sa propri�t� labelFor en lui donnant comme valeur une r�f�rence vers ce n�ud.

Par exemple :

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

Ici, le label est d�sormais attach� � un champ d��dition. L'utilisation de raccourcis claviers ou de touches mn�moniques permettra de basculer le focus directement dans le champ d��dition.

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.