java - 不工作 ccs 样式 javafx -fx-strikethrough

标签 java css javafx

我想使用 CSS 为文本添加删除线。

我使用标签:

button.setStyle("-fx-strikethrough: true;");

但是这段代码有效,请帮忙。

最佳答案

您需要使用 CSS 样式表在按钮上启用删除线。无论如何,使用 CSS 样式表通常比使用内联 CSS setStyle 命令更可取。

/** file: strikethrough.css (place in same directory as Strikeout) */
.button .text {
    -fx-strikethrough: true;
}

CSS 样式表使用 CSS 选择器来选择按钮内的文本并对其应用删除线样式。目前(从 Java 8 开始),setStyle 命令不能使用 CSS 选择器,因此您必须使用 CSS 样式表来实现此功能(或使用内联查找,这是不可取的)——无论如何,样式表是最好的解决方案。

查看@icza 的回答以了解为什么尝试直接在按钮上设置 -fx-strikethrough 样式不起作用。

strikethrough

这是一个示例应用程序:

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Strikeout extends Application {

    @Override 
    public void start(Stage stage) throws Exception {
        Button strikethrough = new Button("Strikethrough");
        strikethrough.getStylesheets().addAll(getClass().getResource(
                "strikethrough.css"
        ).toExternalForm());

        StackPane layout = new StackPane(
                strikethrough
        );
        layout.setPadding(new Insets(10));
        stage.setScene(new Scene(layout));

        stage.show();
    }

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

关于使用删除线与禁用的评论

我要补充一点,如果你想在按钮上划线文本,你可能还想禁用该按钮,你可以通过调用 button.setDisable(true) 来实现。 .当您执行此操作时,它会使该按钮不起作用,并提供一个可见的指示,表明它已被禁用。默认情况下,此可见指示将是按钮上的文本变灰。通常,这是使用删除线设置按钮文本样式的更可取的方法。

关于java - 不工作 ccs 样式 javafx -fx-strikethrough,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26843951/

相关文章:

maven - 如何将 JavaFX 2.0 类添加到现有的 Maven 项目?

java - 对用户隐藏 Javafx 实现

同一应用程序中的javax.json和jakarta.json : org. glassfish.json.JsonProviderImpl cannot be cast to jakarta.json.spi.JsonProvider

javascript - children总高度溢出时,如何自动扩展parent height?

javascript - 使用 jQuery 设置 'font-size' 不适用于所选文本的最后一个元素

css -/images 或/inc/css 链接在 CodeIgniter 子文件夹中不起作用

JavaFX 获取输入

java - 无法向 firebase 实时数据库添加权限

java - 处理并弹出空指针异常

java - 用于辅助反射的高性能对象缓存