我希望能够显示一个带有特定标签的节点,该标签以该节点为中心-例如。一个圆形或矩形节点,例如标签位于中心。看来应该没什么大不了的,而且我敢肯定是这样,但是网上相对稀疏的文档/教程意味着我似乎找不到答案!
现在,我可以在节点上显示标签了(默认情况下会出现,因此标签的左上角从中间开始,这不是我想要的),或将标签设置为出现在节点的右侧(通过为“特定节点”设置标签),但不能将其放置在中间!谁能对此有所启发?
最佳答案
我打赌您正在寻找布局以外的其他东西,但是StackPane提供了这种类型的功能。
在教程中:Working with Layouts
StackPane
StackPane布局窗格将所有节点放在一个内
堆叠,并在前一个节点的顶部添加每个新节点。这个
布局模型提供了一种在形状或图像上覆盖文本的简便方法
或重叠常见形状以创建复杂形状。图1-6
显示帮助图标,该图标是通过在顶部堆叠问号而创建的
渐变背景的矩形的轮廓。
教程中的代码
示例1-4创建堆栈窗格
StackPane stack = new StackPane();
Rectangle helpIcon = new Rectangle(35.0, 25.0);
helpIcon.setFill(new LinearGradient(0,0,0,1, true, CycleMethod.NO_CYCLE,
new Stop[]{
new Stop(0,Color.web("#4977A3")),
new Stop(0.5, Color.web("#B0C6DA")),
new Stop(1,Color.web("#9CB6CF")),}));
helpIcon.setStroke(Color.web("#D0E6FA"));
helpIcon.setArcHeight(3.5);
helpIcon.setArcWidth(3.5);
Text helpText = new Text("? ");
helpText.setFont(Font.font("Amble Cn", FontWeight.BOLD, 18));
helpText.setFill(Color.WHITE);
helpText.setStroke(Color.web("#7080A0"));
stack.getChildren().addAll(helpIcon, helpText);
stack.setAlignment(Pos.CENTER_RIGHT); // Right-justify nodes in stack
HBox.setHgrow(stack, Priority.ALWAYS); // Give stack any extra space
hbox.getChildren().add(stack); // Add to HBox from Example 1-2