Java 设置自定义TextArea背景的秘诀是什么?
这个问题是在一些关于JavaFXTextArea控件的“发现”之后提出的。我已经到了问自己是否有bug和/或需要解决的问题的阶段 JavaFX-JavaDoc ,并通过以下方式显示从区域继承的-fx背景色属性:Java 设置自定义TextArea背景的秘诀是什么?,java,javafx,javafx-2,background-color,fxml,Java,Javafx,Javafx 2,Background Color,Fxml,这个问题是在一些关于JavaFXTextArea控件的“发现”之后提出的。我已经到了问自己是否有bug和/或需要解决的问题的阶段 JavaFX-JavaDoc ,并通过以下方式显示从区域继承的-fx背景色属性: javafx.scene.layout.区域 javafx.scene.control.control javafx.scene.control.TextInputControl javafx.scene.control.TextArea 这些属性从区域继承: 从类jav
- javafx.scene.layout.区域
- javafx.scene.control.control
- javafx.scene.control.TextInputControl
- javafx.scene.control.TextArea
- javafx.scene.control.TextInputControl
- javafx.scene.control.control
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity"
prefHeight="400.0" prefWidth="600.0"
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
style="-fx-background-color: black;" >
<children>
<TextArea layoutX="211.0" layoutY="108.0"
prefHeight="200.0" prefWidth="200.0"
style="-fx-background-color: yellow;" />
</children>
</AnchorPane>
注意两种背景色样式设置:
- 主播:style=“-fx背景色:黑色;”
- TextArea:style=“-fx背景色:黄色;”
设置一个不同的背景将是我期望人们想要做的事情。我错过什么了吗?提前感谢。文本区本身由几个元素组成,CSS层次结构有点深。乍一看,似乎setting.text区域的-fx背景色应该可以做到这一点,但实际上有一个滚动窗格,其中有一个StackPane(.viewport)和一个区域(.content),您必须满足。一般来说,您可以使用类似这样的CSS来获得所需的内容
.text-area *.content {
-fx-background-color: yellow;
}
您可以使用SceneBuilder 2 CSS分析器深入文本区域,查看那里发生了什么。另外,如果您还没有签出,请签出。这里也回答了这个问题: 如前所述,问题在于TextArea由以下部分组成:TextArea、滚动窗格和内容
。文本区。滚动窗格。内容{
-背景色:黑色;
}
我认为您遗漏了一些内容,但很难从您的描述中知道是什么。听起来你的背景色继承设置不正确。你能发布你正在使用的CSS吗?你使用的是自定义样式的类吗?我可以反驳这一点。它很容易复制。在场景生成器--AnchorPane中,设置-fx背景色:黑色。在文本区域中放置一个文本。它是白色的。设置-fx背景色:黄色(如图所示)。文本区域仍将为白色。如果你仔细看,你应该会看到白色的周围有一个黄色的哈罗。我用最简单的FXML示例更新了这个问题。是的,选择器允许我更改白色区域。这无助于我理解白边周围/后面边界的概念。经过更详尽的搜索,我发现“content”属性有一些文档:(并非完全没有文档记录)。另一个问题是,我只能通过样式表选择这些“内部工作”。不能在场景生成器中直接使用/试用它们。呵呵。。。