我正在阅读javafx TextField API:
java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.control.Control
javafx.scene.control.TextInputControl
javafx.scene.control.TextField
如您所见,TextField继承自javafx.scene.Parent类。来自父类javadoc The base class for all nodes that have children in the scene graph.
,但我不明白TextField可以拥有哪些子节点。谁能解释?
答案 0 :(得分:3)
这是因为TextField
不是由单个Node
组成。例如,对于提示文本和普通文本,它使用(不同)Text
个节点。它还为插入符使用Path
。对于Control
,这是通过Skin
(例如TextInputControlSkin
和TextFieldSkin
)实现的。
但是,请注意,TextField
不会公开其子级进行修改;随机代码不能随便添加节点。但是您可以以不可修改的方式查看孩子。
答案 1 :(得分:1)
它可以具有您想要的任何子节点-没有固有的原因,您不能为其子项添加标签,图形或怪异形状之类的东西。试试吧-可以!
在实践中,您可能不会这样做,而是将文本字段和怪异的形状(或其他形状)添加到StackPane或类似的容器中,因为这样可以更好地控制布局和可扩展性。