JavaFX标签

时间:2020-01-09 10:36:38  来源:igfitidea点击:

JavaFX Label控件可以在JavaFX GUI中显示文本或者图像标签。必须将标签控件添加到场景图中才能看到。 JavaFX Label控件由类javafx.scene.control.Label表示。

创建标签

我们可以通过创建Label类的实例来创建标签控件实例。这是一个JavaFX Label实例化示例:

Label label = new Label("My Label");

如我们所见,标签中显示的文本将作为参数传递给Label构造函数。

向场景图添加标签

要使"标签"可见,必须将其添加到场景图中。这意味着将其添加到"场景"对象,或者作为添加到"场景"对象的布局的子级。

这是一个将JavaFXLabel添加到场景图的示例:

package com.Hyman.javafx.controls;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

public class LabelExperiments extends Application  {

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("HBox Experiment 1");

        Label label = new Label("My Label");

        Scene scene = new Scene(label, 200, 100);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}

注意,"标签"被直接添加到"场景"对象中。通常,我们会将Label嵌套在某种布局组件中。为了使示例简单,我在这里省略了该内容。请参阅有关布局组件的教程,以了解它们如何工作。

运行上面的JavaFXLabel示例的结果是一个看起来像这样的应用程序:

在标签中显示图像

可以在标签文本旁边的标签内显示图像。 JavaFXLabel类包含一个构造函数,该构造函数可以将Node作为额外参数。这是一个JavaFX标签示例,该示例使用JavaFX ImageView组件将图像添加到标签中:

package com.Hyman.javafx.controls;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;

import java.io.FileInputStream;

public class LabelExperiments extends Application  {

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("HBox Experiment 1");

        FileInputStream input = new FileInputStream("resources/images/iconmonstr-home-6-48.png");
        Image image = new Image(input);
        ImageView imageView = new ImageView(image);

        Label label = new Label("My Label", imageView);

        Scene scene = new Scene(label, 200, 100);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}

运行上面的JavaFXLabel示例的结果是一个看起来像这样的应用程序:

更改标签的文字

我们可以使用标签的setText()方法更改标签的文本。这可以在应用程序运行时完成。有关单击按钮时更改标签文本的示例,请参见JavaFX Button教程。

设置标签字体

我们可以通过调用JavaFXLabel的setFont()方法来更改其字体。如果我们需要更改文本的大小或者想要使用其他文本样式,这将很有用。这是设置JavaFXLabel的字体的示例:

Label label = new Label("A label with custom font set.");

label.setFont(new Font("Arial", 24));

这个示例告诉Label使用大小为24的Arial字体。