1

我希望能够显示一个具有以节点为中心的特定标签的节点 - 例如。一个圆形或矩形节点,例如,标签位于中心。这似乎应该是微不足道的,我敢肯定,但网络上相对稀疏的文档/教程意味着我似乎无法找到答案!

目前我可以在节点上显示标签没问题(默认情况下它会出现,因此标签的左上角从中心开始,这不是我想要的)或将标签设置为出现在节点的右侧(通过为特定节点设置标签)但不将其定位在中间!任何人都可以对此有所了解吗?

4

1 回答 1

5

我打赌您正在寻找布局以外的东西,但 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
于 2011-10-14T01:30:51.363 回答