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

时间:2013-02-06 09:55:11

标签: 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;  
}

1 个答案:

答案 0 :(得分:8)

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

.txtarea .scroll-pane:disabled{
  -fx-opacity: 1.0;
}