📜  JavaFX |超链接类

📅  最后修改于: 2022-05-13 01:55:41.949000             🧑  作者: Mango

JavaFX |超链接类

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

类的构造函数:

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

常用方法:

MethodExplanation
isVisited()Returns true if the hyperlink is not yet visited else false.
setVisited(boolean v)Sets the value of the property visited.
setOnAction(EventHandler v)Sets the value of the property onAction.
fire()Implemented to invoke the ActionEvent if one is defined.

下面的程序说明了 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 event = 
            new EventHandler() {
      
                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 event =
                 new EventHandler() {
      
                    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);
        }
    }
    

    输出:

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

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