Javafx 简明教程
JavaFX - Hyperlink
Hyperlinks 是用户界面组件,当单击时允许用户导航到网页或执行操作。它们类似于按钮,但外观和行为不同。例如,我们可以找到显示窗口顶部地址栏中任何网页的超链接,如下图所示 −
Creating Hyperlink in JavaFX
在 JavaFX 中,超链接由名为 Hyperlink 的类表示。此类属于 javafx.scene.control 软件包。通过实例化此类,我们可以在 JavaFX 中创建一个超链接。Hyperlink 类的构造函数如下 −
-
Hyperlink() − 这是构造一个没有标签文本的超链接的默认构造函数。
-
Hyperlink(String str) − 它使用指定的标签文本来创建一个新的超链接。
-
Hyperlink(String str, Node icons) − 它使用指定的文本和图形标签来创建一个新的超链接。
在 JavaFX 中,超链接以文本和图片两种形式创建。在创建超链接时,我们的第一步将使用上述任何构造函数来实例化 Hyperlink 类。接下来,指定用户单击链接时应当执行的操作。要执行此操作,我们需要向 setOnAction() 方法添加 EventHandler 。此外,此 EventHandler 将调用帮助导航的指定方法。
通过更改 setOnAction() 方法的实现,我们可以为本地资源和远程服务器上可用的资源创建超链接。
Example
以下 JavaFX 程序中,我们将文本创建为超链接。将此代码保存在名 _ HyperlinkExample.java _ 的文件中。
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Hyperlink;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.geometry.Pos;
public class HyperlinkExample extends Application {
@Override
public void start(Stage stage) {
// Creating a Label
Label labelText = new Label("On clicking the below text, it will redirect us to tutorialspoint");
// Create a hyperlink with text
Hyperlink textLink = new Hyperlink("Visit TutorialsPoint");
// Set the action of the hyperlink
textLink.setOnAction(new EventHandler() {
@Override
public void handle(ActionEvent event) {
// Open the web page in the default browser
getHostServices().showDocument("https://www.tutorialspoint.com/index.htm");
}
});
// Create a scene with the hyperlink
VBox root = new VBox(labelText, textLink);
root.setAlignment(Pos.CENTER);
Scene scene = new Scene(root, 400, 300);
// Set the title and scene of the stage
stage.setTitle("Hyperlink in JavaFX");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
要从命令提示符编译并执行已保存的 Java 文件,请使用以下命令−
javac --module-path %PATH_TO_FX% --add-modules javafx.controls HyperlinkExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls HyperlinkExample
执行时,以上程序将生成以下输出。
Creating Hyperlink as an Image
要创建带有图片的超链接,请实例化 ImageView 类,并将其对象作为 Hyperlink 类构造函数的参数值传递,如下一个示例所示。将此代码保存在名为 HyperlinkImage.java 的文件中。
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Hyperlink;
import javafx.scene.control.Label;
import javafx.scene.control.ContentDisplay;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.geometry.Pos;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
public class HyperlinkImage extends Application {
@Override
public void start(Stage stage) {
// Creating a Label
Label labelText = new Label("On clicking the below image, it will redirect us to tutorialspoint");
// Create a hyperlink with image
Image image = new Image("tutorials_point.jpg");
ImageView imageV = new ImageView(image);
imageV.setFitWidth(150);
imageV.setFitHeight(150);
Hyperlink imageLink = new Hyperlink("visit: ", imageV);
// Set the content display position of the image
imageLink.setContentDisplay(ContentDisplay.RIGHT);
// Set the action of the hyperlink
imageLink.setOnAction(new EventHandler() {
@Override
public void handle(ActionEvent event) {
// Open the web page in the default browser
getHostServices().showDocument("https://www.tutorialspoint.com/index.htm");
}
});
// Create a scene with the hyperlink
VBox root = new VBox(labelText, imageLink);
root.setAlignment(Pos.CENTER);
Scene scene = new Scene(root, 400, 300);
// Set the title and scene of the stage
stage.setTitle("Hyperlink in JavaFX");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
使用以下命令从命令提示符编译并执行已保存的 Java 文件 −
javac --module-path %PATH_TO_FX% --add-modules javafx.controls HyperlinkImage.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls HyperlinkImage