You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX Hyperlink样式配置:如何让链接下划线始终可见?

嘿,我来帮你搞定JavaFX里Hyperlink始终显示下划线的问题!其实这个需求用CSS就能轻松实现,下面给你两种常用的方案,你可以根据自己的场景选择:

如果想要让项目里所有的Hyperlink都始终显示下划线,最方便的就是用全局CSS样式。你可以创建一个CSS文件(比如styles.css),然后添加下面的代码:

/* 让所有Hyperlink默认就显示下划线 */
.hyperlink {
    -fx-underline: true;
}

要是你还想确保在hover、聚焦或者已访问状态下下划线也不消失(其实默认hover状态下划线本来就是显示的,但保险起见可以明确设置),可以加上这些伪类的样式:

.hyperlink:hover,
.hyperlink:focused,
.hyperlink:visited {
    -fx-underline: true;
}

之后在你的JavaFX程序里加载这个CSS文件就行,比如:

scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm());

如果只需要特定的几个Hyperlink显示下划线,直接在代码里给组件设置内联样式就好:

Hyperlink myCustomLink = new Hyperlink("这是一个始终带下划线的链接");
// 直接开启下划线
myCustomLink.setStyle("-fx-underline: true;");

你还可以顺便调整文字颜色或者下划线颜色,比如:

myCustomLink.setStyle("-fx-underline: true; -fx-text-fill: #0066cc; -fx-underline-color: #0066cc;");

注意:-fx-underline-color是JavaFX 8及以后版本支持的属性,如果你用的是更早的版本,可能需要用边框模拟下划线,但现在大部分项目都是用新版本啦。

完整示例代码

给你一个简单的完整例子,把两种方法结合起来:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Hyperlink;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class PersistentUnderlineDemo extends Application {
    @Override
    public void start(Stage primaryStage) {
        // 用全局样式的链接
        Hyperlink globalLink = new Hyperlink("全局样式的链接");
        // 单独设置样式的链接
        Hyperlink individualLink = new Hyperlink("单独设置的红色链接");
        individualLink.setStyle("-fx-underline: true; -fx-text-fill: #ff4444; -fx-underline-color: #ff4444;");

        VBox layout = new VBox(15, globalLink, individualLink);
        layout.setStyle("-fx-padding: 25;");

        Scene scene = new Scene(layout, 350, 200);
        // 加载全局CSS文件
        scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm());

        primaryStage.setTitle("Hyperlink始终显示下划线示例");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

对应的styles.css内容:

.hyperlink {
    -fx-underline: true;
    -fx-text-fill: #0066cc;
}

这样不管是全局还是单个组件,都能实现Hyperlink下划线始终可见的效果啦!

内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:47:20