web-dev-qa-db-ja.com

JavaFX / FXMLで中央のラベルを揃える方法は?

ラベルのテキストをjavafxで中央揃えするにはどうすればよいですか? .cssスタイルシートで、または直接fxmlで。

私は試した Label { -fx-text-alignment: center;}は.cssにありますが、機能しません。シーンビルダーでも機能しません。

7
Mourad Qqch

基本的に2つの選択肢があります。

  1. ラベルを中央に配置できるレイアウトペインを使用し、ラベルをその「推奨サイズ」(つまり、テキストを保持するのに十分な大きさ)にする、または
  2. ラベルをコンテナの幅全体に塗りつぶし、配置プロパティを中央に設定します。

コメントで、ラベルの親としてAnchorPaneを使用していると言いました。これは通常、レイアウトペインに特に適した選択肢ではありません(基本的に、各コントロールの境界をハードコードする必要があります)。したがって、アンカーペインを親として使用すると、選択肢2に制限されます。

label.setMaxWidth(Double.MAX_VALUE);
AnchorPane.setLeftAnchor(label, 0.0);
AnchorPane.setRightAnchor(label, 0.0);
label.setAlignment(Pos.CENTER);

もちろん、FXMLでも設定できるものはすべてあります。

ただし、一般的には、より適切な レイアウトペイン を使用し、そのレイアウトペインで適切なプロパティを設定してラベルを中央に配置することをお勧めします。

16
James_D