Hyperlink类表示类似于JavaFX的网页上的锚链接的超链接。

  1. import javafx.application.Application;
  2. import javafx.scene.Group;
  3. import javafx.scene.Scene;
  4. import javafx.scene.control.Hyperlink;
  5. import javafx.scene.layout.VBox;
  6. import javafx.stage.Stage;
  7. public class Main extends Application {
  8. @Override
  9. public void start(Stage stage) {
  10. stage.setTitle("HTML");
  11. stage.setWidth(500);
  12. stage.setHeight(500);
  13. Scene scene = new Scene(new Group());
  14. VBox root = new VBox();
  15. Hyperlink link = new Hyperlink("www.baidu.com");
  16. root.getChildren().addAll(link);
  17. scene.setRoot(root);
  18. stage.setScene(scene);
  19. stage.show();
  20. }
  21. public static void main(String[] args) {
  22. launch(args);
  23. }
  24. }

image.png

  1. package com.javafx05;
  2. import java.awt.Desktop;
  3. import java.io.IOException;
  4. import java.net.URI;
  5. import java.net.URISyntaxException;
  6. import javafx.application.Application;
  7. import javafx.beans.value.ChangeListener;
  8. import javafx.beans.value.ObservableValue;
  9. import javafx.stage.Stage;
  10. import javafx.scene.Scene;
  11. import javafx.scene.control.ScrollPane;
  12. import javafx.scene.layout.AnchorPane;
  13. import javafx.scene.web.WebView;
  14. public class JavaFx11 extends Application {
  15. @Override
  16. public void start(Stage primaryStage) {
  17. try {
  18. String mInitUrl = "https://www.baidu.com";
  19. AnchorPane root = new AnchorPane();
  20. Scene scene = new Scene(root);
  21. WebView mWebView = new WebView();
  22. mWebView.getEngine().load(mInitUrl);
  23. mWebView.getEngine().locationProperty().addListener(new ChangeListener<String>() {
  24. @Override
  25. public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
  26. Desktop d = Desktop.getDesktop();
  27. URI address;
  28. try {
  29. if(!observable.getValue().contentEquals(mInitUrl)){
  30. address = new URI(observable.getValue());
  31. d.browse(address);
  32. }
  33. } catch (URISyntaxException | IOException e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. });
  38. root.getChildren().add(mWebView);
  39. primaryStage.setScene(scene);
  40. primaryStage.show();
  41. } catch(Exception e) {
  42. e.printStackTrace();
  43. }
  44. }
  45. public static void main(String[] args) {
  46. launch(args);
  47. }
  48. }

创建超链接

以下代码使用默认构造函数创建超链接对象。然后它设置一个URL作为文本标题,最后添加点击事件处理程序。

  1. Hyperlink link = new Hyperlink();
  2. link.setText("http://www.baidu.com");
  3. link.setOnAction(e -> System.out.println("This link is clicked"));

示例

更改超链接的字体,如下代码所示 -

  1. import java.io.File;
  2. import javafx.application.Application;
  3. import javafx.scene.Group;
  4. import javafx.scene.Scene;
  5. import javafx.scene.control.Hyperlink;
  6. import javafx.scene.image.Image;
  7. import javafx.scene.image.ImageView;
  8. import javafx.scene.layout.VBox;
  9. import javafx.scene.text.Font;
  10. import javafx.stage.Stage;
  11. public class Main extends Application {
  12. @Override
  13. public void start(Stage stage) {
  14. stage.setTitle("HTML");
  15. stage.setWidth(500);
  16. stage.setHeight(500);
  17. Scene scene = new Scene(new Group());
  18. VBox root = new VBox();
  19. Hyperlink hpl = new Hyperlink("www.baidu.com");
  20. hpl.setFont(Font.font("Arial", 50));
  21. root.getChildren().addAll(hpl);
  22. scene.setRoot(root);
  23. stage.setScene(scene);
  24. stage.show();
  25. }
  26. public static void main(String[] args) {
  27. launch(args);
  28. }
  29. }

image.png