当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。