关于java:TextArea的JavaFX CSS样式不起作用

JavaFX CSS styling of TextArea does not work

我正在编写一个简单的JavaFX应用程序,但是我无法使用某些CSS样式。
问题是我的TextArea-fx-background-color属性。

这是相关的CSS:

1
2
3
4
5
6
7
.text-area {
  -fx-font-family: Consolas;
  -fx-highlight-fill: #00ff00;
  -fx-highlight-text-fill: #000000;
  -fx-text-fill: #00ff00;
  -fx-background-color: #000000;
}

除了-fx-background-color显然不执行任何操作外,所有字段均按预期执行。 我仍然有默认的白色背景。 如您在图片中看到的,下面的TextField具有相同的CSS,但是确实按预期应用了背景色。

我的问题的图片

有什么线索吗?


您需要设置内容:

1
2
3
  .text-area .content{
      -fx-background-color: black;
  }

...

或者,可能会看到以下答案:JavaFX 8中文本区域的透明背景


我遇到了同样的问题:我做了什么:

  • 创建了一个名为console.css的.css文件,其内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    .text-area {
        -fx-font-family: Consolas;
        -fx-font-size: 15;
        -fx-text-fill: #ffffff;
        -fx-display-caret:true;
    }

    .text-area .content {
        -fx-background-color: #000000;
    }
  • 在我的场景中称为:

    scene.getStylesheets()。add(this.getClass()
    .getResource(" / stylesheets / console.css")。toExternalForm());

  • 说明:
    -第二部分只是加载CSS内容。 (不重要的)
    -第一部分(css):您必须检查必须在对象的哪一部分上应用哪个属性。例如:-fx-font-family位于.text-area上,而-fx-background-color位于.content上。了解此概念后,您就可以了解JavaFx中的所有CSS内容。
    JavaFX-CSS-Docu
    (推荐的)。

    好的编程:-)


    您正在使用场景生成器吗?

    我尝试使用与您使用的CSS相同的CSS,并且一切正常,也许这是您的版本中的错误。

    我测试了它的文本区域和文本字段。

    Image


    例如,对于id = textAreaField的TextArea,应使用-fx-control-inner-background:

    1
    2
    3
    #textAreaField {
    -fx-control-inner-background: #000000;
    -fx-text-fill: #ffffff;}

    您可以获取更多信息,请参阅以下主题:
    Textarea javaFx颜色


    在JavaFx中,TextArea有两个子结构(Content和scrollPane),每个结构都具有TextInputControl的所有属性:

    1
    2
    3
             text-area{ }
             text-area .content { }
             text-area.scroll-pane { }