1. Technology

Label Overview

By

Man using laptop
Emma Innocenti/Taxi/Getty Images

The Label Class

Overview

The Label class is used to create a non-editable text control. It can be used to display a String, or a String with an accompanying image which normally explain the purpose of another control on a graphical user interface. The text contained in a Label can be wrapped to fit a specific space or have visual effects applied to it (e.g., rotated, zoom).

Import Statement

import javafx.scene.control.Label;

Constructors

The Label class has three constructors depending on whether you want to create a Label object with a String, an image or both:

  • To create an empty Label object:
    Label lbl = new Label();
  • To create a Label object with a String:
Label lbl = new Label("a String");
  • To create a Label object with a String and Image:
    //Use the javafx.scene.image.Image class to create an image 
    //object to reference the image for the Label.
    //This will actually be added to the Label as a Node - the ImageView
    //class takes care of this.
    Image image = new Image(getClass().getResourceAsStream("labelimage.jpg"));
    Label lbl = new Label("a String", new ImageView(image));
  • Useful Methods

    If you create an empty Label you can set the text using the setText method:

    lbl.setText("Another String");

    Similarly, if you want to add an image to an existing Label object use the setGraphic method:

    Image image = new Image("labelimage.jpg");
    lbl.setGraphic(new ImageView(image));

    There are corresponding methods getText and getGraphic which will return the String and Node used for the text and image of the Label:

    String lblString = lbl.getText();
    Node lblNode = lbl.getGraphic();

    The color of the text of a Label can been changed easily using the setTextFill method:

    //A color is represented by the javafx.scene.paint.Paint class. 
    //It takes a String representation using the javafx.scene.paint.Color class. 
    //This can be through a constant value (e.g., Color.BLUE, Color. GREEN
    lbl.setTextFill(Color.PURPLE);
    

    To wrap the text of a Label use the setWrapText method. This is useful if the Label must be confined into a small area lengthwise:

    lbl.setWrapText(true);

    To change the font of the text use the setFont method. For example, to change the font to Arial with a size of 25:

    lbl.setFont(Font.font("Arial",25));

    Usage Tips

    A Label can be set up to send the focus to another control by using a mnemonic. This can be a nice shortcut for the user to quickly get to the control the label is defining. In order to set up the shortcut the setMnemonicParsing and setLabelFor methods are used:

    //First you have to set up the keyboard shortcut. This is done by adding an underscore 
    //in front the desired letter:
    lbl.setText("_Another String");
    
    //Next, turn on the mnemonic parsing for the control
    lbl.setMnemonicParsing(true);
    
    //Finally, set the control the shortcut is for
    TextField txtFld = new TextField();
    lbl.setLabelFor(txtFld);

    In this way on a Windows machine pressing ALT-A will send the focus to the TextField control.

    To find out about other JavaFX controls have a look at JavaFX User Interface Controls.

    1. About.com
    2. Technology
    3. Java
    4. Create User Interfaces
    5. JavaFX
    6. JavaFX Controls
    7. JavaFX Controls: Label Overview

    ©2014 About.com. All rights reserved.