当前位置: 首页 > 知识库问答 >
问题:

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

太叔志尚
2023-03-14

我有一个带有一些TextArea元素的GUI来显示信息。由于GUI将对keyevents做出反应,我在场景元素中添加了一个EventHandler。因为我不想为每个文本区域添加一个EventHandler,所以我禁用了它们以防止它们聚焦,因为这样场景的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个答案

燕朝明
2023-03-14

您还需要为文本区域中嵌入的滚动窗格提供样式:

.txtarea .scroll-pane:disabled{
  -fx-opacity: 1.0;
}
 类似资料:
  • 我需要在我的程序中使用文本区域,我也需要它是只读的。 这是我创建textArea的主程序的一部分: 这是我的css文件的一部分: 如果我删除行:ta.setDisable(true);Css的工作方式就像我希望它工作一样。但是在我将禁用 true 设置为 true 之后,它只会使文本区域透明,这使得文本非常难以阅读,并且背景颜色也不是我想要的。 有没有其他方法可以只读设置文本?或者有没有办法在禁用

  • 我使用的是JavaFX 8,有一个只读的TextArea,根据具体情况显示确认消息或错误消息。我希望确认消息有黑色文本,但我希望错误消息有红色文本。我如何在JavaFX 8中做到这一点?就目前而言,我更喜欢用编程的方式来完成,但是我当然也对如何在FXML中完成这个程序的下一个草案感兴趣。 从本质上讲,我正在显示一个 tableView,并让用户编辑 TableView 单元格中的信息。如果用户在单

  • 我正在使用Java FX textarea,并用它来为正在进行的步骤提供信息。 步骤如下。复制文件。删除旧文件。复制新文件。然后将一些属性从旧文件复制到新文件。 当点击一个按钮时,整个步骤开始。 我面临的问题是,当我使用append命令时,文本区域没有被更新。 append 命令添加数据,当函数终止时,我将所有文本放在一起。我希望在调用函数时更新文本区域。 在我的程序中,复制文件操作需要一些时间,

  • 问题内容: 我想更改与数组索引匹配的UITextView中特定文本的文本颜色。我能够略微修改此答案,但不幸的是,每个匹配短语的文本颜色仅更改了一次。 问题答案: 抱歉,我刚注意到您的消息。这是一个工作示例(在操场上测试):

  • 我一直试图改变我的时间选择器的文本颜色。但是我找不到父样式的位置。我两个都试过了 和 我的是15。我的是20。我已经重建并清理了我的项目 我想我已经解决了所有类似的问题,但没有一个真正为我提供了解决方案。唯一可行的答案是使用某种库,但我不太喜欢这种解决方案。到父级的路径是否与我正在使用的路径有所不同,因为我非常确定我应该能够以某种方式访问它? 编辑 这是主题的应用方式; 请注意,这是我收到的错误(

  • 我是JavaFX新手。目前,我正在尝试在用户键入时更改文本字段中文本的颜色。我并不是想在其他地方改变文本的颜色,而是在textfield本身。 我到处搜索,每个人都在谈论如何使用文本对象或文本流改变另一个文本字段的颜色。但我试图改变颜色的一个特定的字时,用户正在打字。 例如,如果用户键入“go to school by 2pm”,我希望将单词“by”的颜色更改为绿色(当用户键入时在文本字段中)。