第4章 JavaFX による GUI プログラミング : 問題 6 : レイアウト
問題
BorderPane
の Top と Bottom の配置をセンタリングせよ
サンプル
BorderPane
は5つのエリア(Node)を持っている
5つのエリアにボタンを配置すると
public void start(Stage stage) throws Exception { BorderPane pane = new BorderPane(); pane.setTop(new Button("Top")); pane.setLeft(new Button("Left")); pane.setCenter(new Button("Center")); pane.setRight(new Button("Right")); pane.setBottom(new Button("Bottom")); stage.setScene(new Scene(pane)); stage.show(); }
と、Top と Bottom は左寄せ
解答
public void start(Stage stage) throws Exception { BorderPane pane = new BorderPane(); Button top = new Button("Top"); BorderPane.setAlignment(top, Pos.TOP_CENTER); // ← 注目 pane.setTop(top); pane.setLeft(new Button("Left")); pane.setCenter(new Button("Center")); pane.setRight(new Button("Right")); Button bottom = new Button("Bottom"); BorderPane.setAlignment(bottom, Pos.BOTTOM_CENTER); // ← 注目 pane.setBottom(bottom); stage.setScene(new Scene(pane)); stage.show(); }
ちなみにBoderPane
の static メソッドで変更できるレイアウトはアライメント以外にマージンがある
BorderPane.setMargin(top, new Insets(12,12,12,12));