JavaFXで上下左右からの位置を指定してコントロールを配置する方法について記載します。
目次
1. 上下左右からの位置を指定して配置する方
AnchorPaneを使用すると上下左右からの位置を指定して、コントロールを配置することができます。
次の実行例では、ボタン2つを上左と下右からの位置を指定して配置しています。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; public class SampleAnchor extends Application { @Override public void start(Stage pStage) throws Exception { /** * ボタンの定義 */ Button btnR20L50 = new Button("上から20、左から50"); btnR20L50.setMinWidth(50); AnchorPane.setTopAnchor(btnR20L50, 20.0); // 上から20の位置 AnchorPane.setLeftAnchor(btnR20L50, 50.0); // 左から50の位置 Button btnB20R50 = new Button("下から20、右から50"); btnB20R50.setMinWidth(50); AnchorPane.setBottomAnchor(btnB20R50, 20.0); // 下からから20の位置 AnchorPane.setRightAnchor(btnB20R50, 50.0); // 右から50の位置 /** * アンカーペインにボタンを追加 */ AnchorPane anchorPane = new AnchorPane(); anchorPane.getChildren().addAll( btnR20L50, btnB20R50 ); pStage.setTitle("Sample Anchor"); pStage.setWidth(300); pStage.setHeight(200); pStage.setScene( new Scene( anchorPane ) ); pStage.show(); } public static void main(String[] args){ Application.launch(args); } } |
1. 上下左右の位置を指定
上下左右からの位置を指定するには、AnchorPaneクラスのsetXXXAnchorメソッドを使用します。
setXXXAnchorメソッドの引数
第一引数:対象のコントロールを指定
第二引数:位置を指定
1 2 3 4 5 6 7 8 9 10 11 |
// 上から20の位置 AnchorPane.setTopAnchor(btnR20L50, 20.0); // 下からから20の位置 AnchorPane.setBottomAnchor(btnB20R50, 20.0); // 左から50の位置 AnchorPane.setLeftAnchor(btnR20L50, 50.0); // 右から50の位置 AnchorPane.setRightAnchor(btnB20R50, 50.0); |
2. アンカーペインにコントロールを追加
アンカーペインにコントロールを追加するには、次のように addAll メソッドを使用します。
追加するコントロールが1つの場合は、add メソッドも使用できます。
1 2 |
AnchorPane anchorPane = new AnchorPane(); anchorPane.getChildren().addAll( btnR20L50, btnB20R50 ); |
2. レイアウト一覧
3. 左から右にコントロールを配置する方法(FlowPane)
4. 格子状にコントロールを配置する方法(GridPane)
5. 上下左右中央にコントロールを配置する方法(BorderPane)