JavaFX显示节点周围的选项

JavaFX显示节点周围的选项,javafx,contextmenu,Javafx,Contextmenu,我试图实现一个自定义上下文菜单,菜单项将出现在节点周围,其思想如下,在目标节点周围绘制一个虚拟圆,并计算圆的周长,第一个菜单项将位于目标节点的顶部,其余的将以相等的距离分布在每个菜单项之间,,,,,我没有写任何代码行,因为我不知道如何开始,至少,,,plz帮助 也许这张图片能更好地解释 如果有人感兴趣,我设法做到了,但代码有点脏: import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import ja

我试图实现一个自定义上下文菜单,菜单项将出现在节点周围,其思想如下,在目标节点周围绘制一个虚拟圆,并计算圆的周长,第一个菜单项将位于目标节点的顶部,其余的将以相等的距离分布在每个菜单项之间,,,,,我没有写任何代码行,因为我不知道如何开始,至少,,,plz帮助

也许这张图片能更好地解释


如果有人感兴趣,我设法做到了,但代码有点脏:

import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Circle;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

/**
     * @author Asendar
 *
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class RadialMenuFactory {
    public static final RadialMenuFactory instance = new RadialMenuFactory();

    public StackPane construct(int itemsCount, int radius) {
        StackPane pane = new StackPane();

        double pheta = 270;

        int counter = 0;

        while (counter != itemsCount) {
            double x = radius * Math.cos(Math.toRadians(pheta));
            double y = radius * Math.sin(Math.toRadians(pheta));

            Button btn = new Button("btn");

            btn.setTranslateX(x);
            btn.setTranslateY(y);

            pane.getChildren().addAll(btn);

            pheta += 360 / itemsCount;
            pheta %= 360;

            counter++;
        }

        pane.setMinHeight(300);
        pane.setMinWidth(300);

        return pane;
    }

}

你有了@fabian我想我现在可以开始编码了,,,