JavaFX/ScalaFX - 更改禁用TextArea的文本颜色?

Fab*_*ian 3 textarea javafx scalafx

我有一个带有一些TextArea元素的GUI来显示信息.由于GUI将对keyevents做出反应,因此我将一个EventHandler添加到了scene元素中.因为我不想为每个textarea添加一个EventHandler,所以我禁用它们以防止它们被聚焦,因为那时场景的事件处理程序不再起作用了.现在我有问题,文本显示为灰色而不是黑色,尽管我在css文件中更改了它.你有什么想法为什么文本不是黑色,我怎么能解决这个问题?

这是一些代码:

private val scene =
  new Scene {
    stylesheets.add("css/style.css")
    onKeyTyped = (new EventHandler[KeyEvent] {
      def handle(event: KeyEvent) {
        ...
      }
    })
  ...
}

private val description = new TextArea{    
  text = "some text"
  wrapText = true
  disable = true 
  styleClass.add("txtarea")      
  maxHeight = 400
}


.txtarea:disabled{  
  -fx-font-size: 18pt;
  -fx-text-fill: #000000;
  -fx-prompt-text-fill: #000000;
  -fx-opacity: 1.0;
  -fx-background-color: white;  
}
Run Code Online (Sandbox Code Playgroud)

Jar*_*rek 8

您还需要为TextArea中嵌入的滚动窗格提供样式:

.txtarea .scroll-pane:disabled{
  -fx-opacity: 1.0;
}
Run Code Online (Sandbox Code Playgroud)