當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaFX 類 Cursor用法及代碼示例


遊標類是JavaFX的一部分。光標類用於封裝鼠標光標的位圖表示形式。遊標類具有幾個預定義的遊標,可以根據程序員的需要使用它們。

常用方法:

方法 說明
cursor(String s) 返回指定字符串的遊標對象
toString() 返回遊標的字符串表示形式。

下麵的程序將說明遊標類的用法:


  1. Java程序通過傳遞字符串標識符作為參數來將一些預定義的遊標設置為:該程序創建一個名為cursor_的遊標。光標將使用函數setCursor()設置到場景。我們將創建一個標簽。標簽將在場景內創建,而場景又將托管在舞台內。函數setTitle()用於為舞台提供標題。然後,創建一個平鋪窗格,在其上調用addChildren()方法以將標簽附加到場景內。最後,調用show()方法以顯示最終結果。
    // Java program to set some predefined cursor 
    // to the by passing string identifier as arguments 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Button; 
    import javafx.scene.layout.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.control.Label; 
    import javafx.stage.Stage; 
    import javafx.scene.Cursor; 
      
    public class cursor_0 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
              
            // set title for the stage 
            stage.setTitle("Creating Cursor"); 
      
            // create a stack pane 
            TilePane tilepane = new TilePane(); 
      
            // create a label 
            Label label = new Label("Cursor Example"); 
      
            // add button 
            tilepane.getChildren().add(label); 
      
            // create a scene 
            Scene scene = new Scene(tilepane, 200, 200); 
      
            // create a cursor 
            Cursor cursor_ = Cursor.cursor("WAIT"); 
      
            // set cursor for the scene 
            scene.setCursor(cursor_); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
      
        // Main Method 
        public static void main(String args[]) 
        { 
              
            // launch the application 
            launch(args); 
        } 
    }

    輸出:

  2. Java程序在場景中設置一些預定義的光標:該程序創建一個分別由名稱按鈕指示的按鈕。我們將創建一個名為cursor_的預定義遊標數組。將使用預定義光標cursor_列表中的函數setCursor()將光標設置為場景。該按鈕將在場景內創建,而場景又將托管在舞台內。我們將創建一個標簽。函數setTitle()用於為舞台提供標題。然後,創建一個平鋪窗格,在其上調用addChildren()方法以將按鈕和標簽附加到場景內。最後,調用show()方法以顯示最終結果。我們將創建一個事件處理程序來處理按鈕事件。事件處理程序將使用setOnAction()函數添加到按鈕。當按下按鈕時,將使用setCursor()函數更改場景的光標。
    // Java program to set some predefined 
    // cursor to the scene 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Button; 
    import javafx.scene.layout.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.control.Label; 
    import javafx.stage.Stage; 
    import javafx.scene.Cursor; 
      
    public class cursor_1 extends Application { 
      
    // counter of cursor 
    int i = 0; 
      
    // launch the application 
    public void start(Stage stage) 
    { 
        // set title for the stage 
        stage.setTitle("Creating Cursor"); 
      
        // create a button 
        Button button = new Button("cursor"); 
      
        // create a stack pane 
        TilePane tilepane = new TilePane(); 
      
        // create a label 
        Label label = new Label("Cursor Example"); 
      
        // create a cursor with predefined cursor 
        Cursor cursor_[] = {Cursor.CLOSED_HAND, Cursor.CROSSHAIR, 
                            Cursor.DEFAULT, Cursor.DISAPPEAR,  
                            Cursor.E_RESIZE, Cursor.H_RESIZE,  
                            Cursor.HAND, Cursor.MOVE,  
                            Cursor.N_RESIZE, Cursor.NE_RESIZE,  
                            Cursor.NONE, Cursor.NW_RESIZE,  
                            Cursor.OPEN_HAND, Cursor.SE_RESIZE,  
                            Cursor.SW_RESIZE, Cursor.TEXT,  
                            Cursor.V_RESIZE, Cursor.W_RESIZE, 
                            Cursor.WAIT}; 
      
        // add button 
        tilepane.getChildren().add(button); 
        tilepane.getChildren().add(label); 
      
        // create a scene 
        Scene scene = new Scene(tilepane, 200, 200); 
      
        // set cursor for the scene 
        scene.setCursor(cursor_[0]); 
      
        // action event 
        EventHandler<ActionEvent> event =  
          new EventHandler<ActionEvent>()  
        { 
            public void handle(ActionEvent e) 
            { 
                if (i == cursor_.length - 1) 
                    i = -1; 
      
                // change the cursor 
                scene.setCursor(cursor_[++i]); 
            } 
        }; 
      
        // when button is pressed 
        button.setOnAction(event); 
      
        // set the scene 
        stage.setScene(scene); 
      
        stage.show(); 
    } 
      
    // Main Method 
    public static void main(String args[]) 
    { 
          
        // launch the application 
        launch(args); 
    } 
    }

    輸出:

注意:以上程序可能無法在在線IDE中運行。請使用離線編譯器。

參考:https://docs.oracle.com/javafx/2/api/javafx/scene/Cursor.html



相關用法


注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFX | Cursor class with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。