devstory

Le Tutoriel de JavaFX Hyperlink

  1. JavaFX Hyperlink
  2. L'exemple de Hyperlink
  3. Personnalisation Hyperlink

1. JavaFX Hyperlink

JavaFx Hyperlink décrit un lien hypertexte, il est semblable aux hyperliens sur le HTML.
Hyperlink hyperlink = new Hyperlink("Go to Eclipse home page");

hyperlink.setOnAction(new EventHandler<ActionEvent>() {

    @Override
    public void handle(ActionEvent event) {
        getHostServices().showDocument("https://eclipse.org");
    }
});
Par défaut JavaFX Hyperlink a 3 états qui sont illustrés comme indiqué ci-dessous. Il est à noter que vous pouvez utiliser CSS pour les modifier.

2. L'exemple de Hyperlink

L'exemple suivant crée un lien Hyperlink donc lorsque vous cliquez dessus, il va à la page d'accueil d'Eclipse (https://eclipse.org).
HyperlinkDemo.java
package org.o7planning.javafx.hyperlink;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Hyperlink;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;

public class HyperlinkDemo extends Application {

    @Override
    public void start(Stage stage) {

        Hyperlink hyperlink = new Hyperlink("Go to Eclipse home page");

        hyperlink.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                getHostServices().showDocument("https://eclipse.org");
            }
        });

        FlowPane root = new FlowPane();
        root.setPadding(new Insets(10));
        root.getChildren().addAll(hyperlink);
        Scene scene = new Scene(root);

        stage.setTitle("JavaFX Hiperlink (o7planning.org)");

        stage.setWidth(400);
        stage.setHeight(200);

        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

3. Personnalisation Hyperlink

Avec Hyperlink vous avez quelques méthodes utiles :
public final void setUnderline(boolean value)

public final boolean isUnderline()

public final void setVisited(boolean value)

public final boolean isVisited()
Exemple :
HyperlinkDemo2.java
package org.o7planning.javafx.hyperlink;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Hyperlink;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class HyperlinkDemo2 extends Application {

    private final String TEXT = "Go to Eclipse home page";
   
    @Override
    public void start(Stage stage) {

        Hyperlink hyperlink = new Hyperlink(TEXT);

        hyperlink.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                getHostServices().showDocument("https://eclipse.org");
            }
        });

        Button button1 = new Button("On/Off Visited");

        button1.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                boolean visited = hyperlink.isVisited();
                hyperlink.setVisited(!visited);
                hyperlink.setText(TEXT+" (visited:"+ hyperlink.isVisible()+")");
            }
        });
       
        Button button2 = new Button("On/Off Underline");

        button2.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                boolean underline = hyperlink.isUnderline();
                hyperlink.setUnderline(!underline);
                hyperlink.setText(TEXT+" (underline:"+ hyperlink.isUnderline()+")");
            }
        });
         

        VBox root = new VBox();
        root.setPadding(new Insets(10));
        root.setSpacing(10);
        root.getChildren().addAll(hyperlink,button1,button2);
        Scene scene = new Scene(root);

        stage.setTitle("JavaFX Hiperlink (o7planning.org)");

        stage.setWidth(400);
        stage.setHeight(200);

        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

Tutoriels de JavaFX

Show More