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


JavaFX 类 Hyperlink用法及代码示例


超链接类是JavaFX的一部分。超链接是一个HTML类型的标签,可以包含文本和图形,或两者都包含。它响应滚动和点击。单击/按下超链接时,isVisited()变为true。超链接的行为类似于按钮。当按下并释放超链接时,将发送一个ActionEvent。因此,您的应用程序可以基于此事件执行某些操作。

该类的构造函数:

  1. Hyperlink():创建没有文本或图形的超链接。
  2. Hyperlink(String t):创建带有指定文本作为标签的超链接。
  3. Hyperlink(String t, Node g):创建带有指定文本和图形作为标签的超链接。

常用方法:


方法 说明
isVisited() 如果尚未访问超链接,则返回true,否则返回false。
setVisited(boolean v) 设置访问的属性的值。
setOnAction(EventHandler v) 设置属性onAction的值。
fire() 实现以调用ActionEvent(如果已定义)。

以下示例程序旨在说明Hyperlink类的用法:

  1. Java程序创建超链接并将其添加到阶段中,还添加一个事件处理程序来处理事件:该程序创建一个由名称超链接指示的超链接。超链接将在场景内创建,而场景又将在场景内托管。我们将创建一个标签来显示是否访问了超链接。函数setTitle()用于为舞台提供标题。然后创建一个HBox,在其上调用addChildren()方法在场景内附加超链接和标签。最后,调用show()方法以显示最终结果。我们将创建一个事件处理程序来处理按钮事件。事件处理程序将使用setOnAction()函数添加到超链接。
    // Java Program to create a hyperlink and add 
    // it to the stage also add an event handler 
    // to handle the events 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
      
    public class hyperlink extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
      
            // set title for the stage 
            stage.setTitle("creating hyperlinks"); 
      
            // create a hyperlink 
            Hyperlink hyperlink = new Hyperlink("hyperlink"); 
      
            // create a HBox 
            HBox hbox = new HBox(); 
      
            // create a label 
            Label label = new Label("hyperlink not visited"); 
      
            // action event 
            EventHandler<ActionEvent> event =  
            new EventHandler<ActionEvent>() { 
      
                public void handle(ActionEvent e) 
                { 
                    label.setText("hyperlink visited "); 
                } 
            }; 
      
            // when hyperlink is pressed 
            hyperlink.setOnAction(event); 
      
            // add hyperlink 
            hbox.getChildren().add(hyperlink); 
            hbox.getChildren().add(label); 
      
            // create a scene 
            Scene scene = new Scene(hbox, 200, 200); 
      
            // set the scene 
            stage.setScene(scene); 
      
            stage.show(); 
        } 
      
        // Main Method 
        public static void main(String args[]) 
        { 
      
            // launch the application 
            launch(args); 
        } 
    }

    输出:

  2. Java程序创建带有文本和图像的超链接,并向其中添加事件处理程序:该程序将创建一个超链接,该超链接由名称超链接指示,并带有图像和文本。将使用导入图像的文件输入流将图像包括在内。然后,我们将使用文件输入流的对象创建图像,然后使用图像文件创建图像视图。超链接将在场景内创建,而场景又将在场景内托管。我们将创建一个标签来显示是否访问了超链接。函数setTitle()用于为舞台提供标题。然后创建一个HBox,在其上调用addChildren()方法在场景内附加超链接和标签。最后,调用show()方法以显示最终结果。我们将创建一个事件处理程序来处理按钮事件。事件处理程序将使用setOnAction()函数添加到超链接。
    // Java Program to create a hyperlink with  
    // both text and image on it and also add  
    // an event handler to it 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.*; 
    import javafx.scene.layout.*; 
    import javafx.stage.Stage; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import java.io.*; 
    import javafx.scene.image.*; 
      
    public class hyperlink_1 extends Application { 
      
        // launch the application 
        public void start(Stage stage) 
        { 
      
            try { 
      
                // set title for the stage 
                stage.setTitle("creating hyperlinks"); 
      
                // create a input stream 
                FileInputStream input = new FileInputStream("f:\\gfg.png"); 
      
                // create a image 
                Image image = new Image(input); 
      
                // create a image View 
                ImageView imageview = new ImageView(image); 
      
                // create a hyperlink 
                Hyperlink hyperlink = new Hyperlink("GeeksforGeeks", imageview); 
      
                // create a HBox 
                HBox hbox = new HBox(); 
      
                // create a label 
                Label label = new Label("hyperlink not visited"); 
      
                // action event 
                EventHandler<ActionEvent> event = 
                 new EventHandler<ActionEvent>() { 
      
                    public void handle(ActionEvent e) 
                    { 
                        label.setText("hyperlink visited "); 
                    } 
                }; 
      
                // when hyperlink is pressed 
                hyperlink.setOnAction(event); 
      
                // add hyperlink 
                hbox.getChildren().add(hyperlink); 
                hbox.getChildren().add(label); 
      
                // create a scene 
                Scene scene = new Scene(hbox, 200, 200); 
      
                // set the scene 
                stage.setScene(scene); 
      
                stage.show(); 
            } 
      
            catch (Exception e) { 
                System.err.println(e.getMessage()); 
            } 
        } 
      
        // Main Method 
        public static void main(String args[]) 
        { 
      
            // launch the application 
            launch(args); 
        } 
    }

    输出:

  3. 注意:以上程序可能无法在在线IDE中运行。请使用离线编译器。

    参考:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Hyperlink.html



相关用法


注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | Hyperlink Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。