Using JavaFX UI Controls(Label的用法)

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


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章