2017-12-17 13 views
0

私は3つのHBoxをvboxの中に設定していて、vboxをborderPaneの内側に収めるまで完全に中央に表示します。私のvboxがボーダーペインに置かれたときに右上隅にプッシュされる点を除いて、シーンの上を横切ってメニューを表示し、残りのラベルとテキストフィールドを中央に配置しようとしています。 Heres私のコードは、事前に感謝します。VBOXがBorderPaneに置かれたときにVBOXが押し出される

//COURSE TITLE PANE 
    HBox courseTitlePane = new HBox(30); 
    courseTitlePane.getChildren().addAll(courseTitleLabel,courseTitleField); 
    courseTitlePane.setAlignment(Pos.CENTER); 
    // 
    //COURSE NUMBER PANE 
    HBox courseNumberPane = new HBox(30); 
    courseNumberPane.getChildren().addAll(courseNumberLabel,courseNumberField); 
    courseNumberPane.setAlignment(Pos.CENTER); 
    // 
    //COURSE CREDITS PANE 
    HBox creditsPane = new HBox(30); 
    creditsPane.getChildren().addAll(numOfCreditsLabel,numOfCreditsField); 
    creditsPane.setAlignment(Pos.CENTER); 
    // 
    //COURSE DESCRIPTION PANE 
    HBox descriptionPane = new HBox(30); 
    descriptionPane.getChildren().addAll(courseDescriptionLabel,courseDescriptionField); 
    descriptionPane.setAlignment(Pos.CENTER); 
    // 

    VBox pane = new VBox(30); 
    pane.getChildren().addAll(courseTitlePane,courseNumberPane,creditsPane,descriptionPane); 
    pane.setAlignment(Pos.CENTER); 

    BorderPane root = new BorderPane(); 
    root.getChildren().addAll(pane); 
    root.setTop(menuBar); 

    Scene scene = new Scene(root,800,500); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
+0

あなたへの私の謙虚なアドバイスをされて - シーンビルダー – zlakad

+2

使用 'root.setCenter(ペイン)'ではなく 'root.getChildren()を追加(ペインを使用してみてください。 ) ' –

答えて

0

@James_Dのコメントは本当に正しいです。 BorderPane documentationを見ると、BorderPaneは「上、左、右、下、および中央の位置に子を配置します」と説明しています。

root.setTop(menuBar);でBorderPaneの上部に追加するmenuBarを設定するのと同じように、BorderPaneの中心のコンテンツを設定するには、root.setCenter(pane);を使用する必要があります。ここで

は完全な例である:

package sample; 

import javafx.application.Application; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.Label; 
import javafx.scene.control.Menu; 
import javafx.scene.control.MenuBar; 
import javafx.scene.control.TextField; 
import javafx.scene.layout.BorderPane; 
import javafx.scene.layout.HBox; 
import javafx.scene.layout.VBox; 
import javafx.stage.Stage; 

public class Main extends Application { 

    @Override 
    public void start(Stage primaryStage) throws Exception{ 
     HBox courseTitlePane = new HBox(30); 
     Label courseTitleLabel = new Label("Course Title"); 
     TextField courseTitleField = new TextField(); 
     courseTitlePane.getChildren().addAll(courseTitleLabel,courseTitleField); 
     courseTitlePane.setAlignment(Pos.CENTER); 
     // 
     //COURSE NUMBER PANE 
     HBox courseNumberPane = new HBox(30); 
     Label courseNumberLabel = new Label("Course Number"); 
     TextField courseNumberField = new TextField(); 
     courseNumberPane.getChildren().addAll(courseNumberLabel,courseNumberField); 
     courseNumberPane.setAlignment(Pos.CENTER); 
     // 
     //COURSE CREDITS PANE 
     HBox creditsPane = new HBox(30); 
     Label numOfCreditsLabel = new Label("Credits"); 
     TextField numOfCreditsField = new TextField(); 
     creditsPane.getChildren().addAll(numOfCreditsLabel,numOfCreditsField); 
     creditsPane.setAlignment(Pos.CENTER); 
     // 
     //COURSE DESCRIPTION PANE 
     HBox descriptionPane = new HBox(30); 
     Label courseDescriptionLabel = new Label("Course Description"); 
     TextField courseDescriptionField = new TextField(); 
     descriptionPane.getChildren().addAll(courseDescriptionLabel, courseDescriptionField); 
     descriptionPane.setAlignment(Pos.CENTER); 
     // 

     VBox pane = new VBox(30); 
     pane.getChildren().addAll(courseTitlePane,courseNumberPane,creditsPane,descriptionPane); 
     pane.setAlignment(Pos.CENTER); 

     final Menu menu1 = new Menu("File"); 
     final Menu menu2 = new Menu("Options"); 
     final Menu menu3 = new Menu("Help"); 

     BorderPane root = new BorderPane(); 
     MenuBar menuBar = new MenuBar(); 
     root.setTop(menuBar); 
     menuBar.getMenus().addAll(menu1, menu2, menu3); 
     root.setCenter(pane); 
     primaryStage.setTitle("Some Generic Course Application"); 
     primaryStage.setScene(new Scene(root, 300, 275)); 
     primaryStage.show(); 
    } 


    public static void main(String[] args) { 
     launch(args); 
    } 
} 
関連する問題