Центрируйте метку на узле в JavaFX 2.0 - PullRequest
1 голос
/ 13 октября 2011

Я хотел бы иметь возможность отображать узел с определенной меткой по центру на узле - например.узел круга или прямоугольника, например, с меткой в ​​центре.Кажется, это должно быть тривиально, и я уверен, что это так, но относительно редкая документация / учебные материалы в Интернете означают, что я не могу найти ответ!

В данный момент я могу отобразить ярлык нау узла нет проблем (по умолчанию это выглядит так, что верхний левый угол метки начинается в центре, а это не то, что мне нужно) или задайте метку для отображения справа от узла (установив метку «для» определенногоузел) но не располагайте его посередине!Кто-нибудь может пролить свет на это?

1 Ответ

5 голосов
/ 14 октября 2011

Готов поспорить, что вы ищете что-то другое, кроме макета, но StackPane предоставляет такой тип функциональности.

Из учебника: Работа с макетами

StackPane

Панель макета StackPane размещает все узлы в одном стек с каждым новым узлом, добавленным поверх предыдущего узла. это Модель макета обеспечивает простой способ наложения текста на фигуру или изображение. или для наложения общих фигур, чтобы создать сложную форму. Рисунок 1-6 показывает значок справки, который создается путем размещения вопросительного знака сверху прямоугольника с градиентным фоном.

enter image description here

Код из учебника

Пример 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
...