JavaFX - 同一个超链接中的多种字体大小

时间:2017-04-14 18:12:45

标签: java javafx javafx-8

这可能吗?我可以创建两个具有不同字体样式的超链接,但是当悬停在一个上面时,它看起来有点奇怪。

我想要一个下面带有较小“标题”文字的超链接,单击文本的任何一部分都应该做同样的事情。

1 个答案:

答案 0 :(得分:1)

这是你在找什么?

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

/**
 *
 * @author blj0011
 */
public class JavaFXApplication77 extends Application
{

    @Override
    public void start(Stage primaryStage)
    {
        Hyperlink link = new Hyperlink();
        link.setText("http://example.com");
        link.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                System.out.println("This link is clicked");
            }
        });

        Hyperlink link2 = new Hyperlink();
        link2.setText("http://example.com");
        link2.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                System.out.println("This link is clicked");
            }
        });
        link.setOnMouseEntered((event) -> {
            link2.underlineProperty().setValue(Boolean.TRUE);
        });

        link.setOnMouseExited((event) -> {
            link2.underlineProperty().setValue(Boolean.FALSE);
        });


        VBox vbox = new VBox();
        vbox.getChildren().addAll(link, link2);
        StackPane root = new StackPane();
        root.getChildren().add(vbox);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        launch(args);
    }

}

这是一种方式。您可以双向绑定属性。