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();
}
}