1

ノードを中心に特定のラベルを付けてノードを表示できるようにしたいと思います。たとえば、中央にラベルが付いた円または長方形のノード。これは些細なことのように思えますが、そうであると確信していますが、ウェブ上のドキュメントやチュートリアルが比較的まばらであるため、答えが見つからないようです!

現時点では、ノードにラベルを問題なく表示できます (デフォルトでは、ラベルの左上が中央から始まるように表示されますが、これは私が望むものではありません)、ノードの右側に表示されるようにラベルを設定します (特定のノードにラベルを設定することによって)、真ん中に配置しないでください! 誰でもこれに光を当てることができますか?

4

1 に答える 1

5

レイアウト以外のものを探しているに違いありませんが、StackPane はこの種の機能を提供します。

チュートリアルから:レイアウトの操作

スタックペイン

StackPane レイアウト ペインは、すべてのノードを 1 つのスタック内に配置し、新しいノードをそれぞれ前のノードの上に追加します。このレイアウト モデルを使用すると、図形や画像にテキストを重ねたり、一般的な図形を重ねて複雑な図形を作成したりする簡単な方法が提供されます。図 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 に答える