2标签
本章介绍如何使用标签
类驻留在显示文本元素的JavaFX
API中javafx.scene.control
包。了解如何包装一个文本元素,以适应特定的空间,添加图形图像,或适用的视觉效果。
图2-1显示了三种常用的标签用法。在左边的标签是一个形象的文本元素,在该中心的标签代表旋转的文本,并在合适的标签的文本呈现包裹。
图2-1标签示例应用程序
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package labelsample; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.input.MouseEvent; import javafx.scene.layout.StackPane; import javafx.stage.Stage; /** * * @author Administrator */ public class LabelSample extends Application { /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Hello Label!"); Image image = new Image(getClass().getResourceAsStream("search.png")); final Label label1 = new Label("",new ImageView(image)); label1.setOnMouseEntered(new EventHandler<MouseEvent>(){ @Override public void handle(MouseEvent e) { label1.setScaleX(2.5); label1.setScaleY(2.5); } }); label1.setOnMouseExited(new EventHandler<MouseEvent>(){ @Override public void handle(MouseEvent e) { label1.setScaleX(1); label1.setScaleY(1); } }); final Label label2 = new Label("A label that needs to be wrapped"); label2.setWrapText(true); label2.setOnMouseEntered(new EventHandler<MouseEvent>(){ @Override public void handle(MouseEvent e) { label2.setScaleX(2.5); label2.setScaleY(2.5); } }); label2.setOnMouseExited(new EventHandler<MouseEvent>(){ @Override public void handle(MouseEvent e) { label2.setScaleX(1); label2.setScaleY(1); } }); StackPane root = new StackPane(); root.getChildren().add(label1); root.getChildren().add(label2); primaryStage.setScene(new Scene(root, 300, 250)); primaryStage.show(); } }