从零开始学习JavaFX(6)控件篇之Label

在之前的教程中,我们已经知道了如何创建表单程序,并做简单的CSS换肤和按钮事件。接下来的几章中,我们将会详细讲解各个控件的用法。

下面来看看这一节中我们要讲的Label控件的几种形式:

创建Label

在JavaFX API中,Label提供如下几种构造函数:

//An empty label
Label label1 = new Label();
//A label with the text element
Label label2 = new Label("Search");
//A label with the text element and graphical icon
Image image = new Image(getClass().getResourceAsStream("labels.jpg"));
Label label3 = new Label("Search", new ImageView(image));

在创建Label之后,我们可以通过setText(String text)来设置文本,通过setGraphic(Node node)来设置图标。setTextFill方法用来指定文本的填充色。

Label label1 = new Label("Search");
Image image = new Image(getClass().getResourceAsStream("labels.jpg"));
label1.setGraphic(new ImageView(image));
label1.setTextFill(Color.web("#0076a3"));

当既有文本又有图标的时候,我们可以通过setGraphicTextGap 函数来设定它们之间的间距。

另外,我们可以通过setTextAlignment设定Label文本的对齐方式。还可以通过setContentDisplay来设定图标相对于Label文本的位置,可以为 LFFT, RIGHT, CENTER, TOP, BOTTOM。

设定字体

在JavaFX中,我们通过setFont来设定字体。

//Use a constructor of the Font class
label1.setFont(new Font("Arial", 30));
//Use the font method of the Font class
label2.setFont(Font.font("Cambria", 32));

文本换行

对于Label,我们可以设置文本换行。来让文本自动适应Label的大小。

Label label3 = new Label("A label that needs to be wrapped");
label3.setWrapText(true);

应用效果

当Label是一个静态内容,无法编辑的时候。我们可以给它应用各种效果和变换,如下所示:

Label label2 = new Label ("Values");
label2.setFont(new Font("Cambria", 32));
label2.setRotate(270);
label2.setTranslateY(50);

下面我们让鼠标移动到Label的时候,呈现放大的效果。

label3.setOnMouseEntered((MouseEvent e) -> {
    label3.setScaleX(1.5);
    label3.setScaleY(1.5);
});

label3.setOnMouseExited((MouseEvent e) -> {
    label3.setScaleX(1);
    label3.setScaleY(1);
});

这一节就到这里结束了,我们学习了控件里Label的各种用法。那么,下一节再见。

发表评论

电子邮件地址不会被公开。