【问题标题】:Change foreground color of selection in JavaFX textarea更改 JavaFX textarea 中选择的前景色
【发布时间】:2016-03-04 20:51:29
【问题描述】:

我想更改 JavaFx 文本区域中选定文本的样式。我已经通过设置-fx-accent 成功更改了背景颜色,但我没有找到如何更改文本的前景色。有谁知道如何实现这一目标?我已经浏览了modena.css文件并尝试了许多属性,但直到现在都没有成功。

非常感谢!

【问题讨论】:

    标签: java javafx textarea selection


    【解决方案1】:

    JavaFX 8 CSS reference documentation来看,文本区域等文本输入控件中选中文本的前景填充的css属性,貌似是:

    -fx-highlight-text-fill
    

    样本

    左边是一个没有焦点的TextArea,它有一些选定的文本。右边是一个 TextArea,它有焦点和一些选定的文本。自定义样式应用于选定的文本前景和背景,颜色根据焦点状态而有所不同。

    text-highlighter.css

    .text-input {
        -fx-highlight-fill: paleturquoise;
        -fx-highlight-text-fill: blue;
    }
    .text-input:focused {
        -fx-highlight-fill: palegreen;
        -fx-highlight-text-fill: fuchsia;
    }
    

    TextHighlighter.java

    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.*;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;
    
    public class TextHighlighter extends Application {
        @Override
        public void start(Stage stage) throws Exception {
            TextArea textArea = new TextArea(
                    "The quick brown cat ran away with the spoon."
            );
            textArea.selectRange(4, 9);
            textArea.setWrapText(true);
    
            VBox layout = new VBox(10, new Button("Button"), textArea);
            final Scene scene = new Scene(layout);
            scene.getStylesheets().add(
                    this.getClass().getResource("text-highlighter.css").toExternalForm()
            );
            stage.setScene(scene);
            stage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-07-26
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多