2014-01-19 63 views
0

我今天遇到了一個網格不符合我想要的方式。 我怎樣才能以我想要的方式對齊它?無法讓這個網格正確對齊

示例代碼+:

enter image description here

我想在第3列中的第I部分標記爲紅色到消失,並使其最終在我的形象結束。

private GridPane login(final BorderPane rootLayout) {  
// Create a grid layout 
     final GridPane grid = new GridPane(); 
     grid.setAlignment(Pos.CENTER); 
     grid.setHgap(10); 
     grid.setVgap(10); 
     grid.setPadding(new Insets(25, 25, 25, 50)); 

// Set header text and add it to the grid 
     Text sceneTitle = new Text("Welcome"); 
     sceneTitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 25)); 
     grid.add(sceneTitle, 0, 0, 2, 1); 

// Create username label and textfield and add it to the grid 
     Label labelUser = new Label("Username: "); 
     grid.add(labelUser, 0, 1); 
     TextField textUser = new TextField(); 
     grid.add(textUser, 1, 1); 

// Create password label and field and add it to the grid 
     Label labelPass = new Label("Password: "); 
     grid.add(labelPass, 0, 2); 
     PasswordField textPass = new PasswordField(); 
     grid.add(textPass, 1, 2); 

// Create a button to login and add it to the grid 
     Button buttonLogin = new Button("Login"); 
     HBox hbButton = new HBox(10); 
     hbButton.setAlignment(Pos.BOTTOM_RIGHT); 
     hbButton.getChildren().add(buttonLogin); 
     grid.add(hbButton, 1, 4);   

// Create kone logo and add it to the bottom of the layout 
     ImageView imageKone = new ImageView(
       new Image(MainWindow.class.getResourceAsStream("Resources/konecranes.png"))); 
     grid.add(imageKone, 0, 7, 3, 2); 

// Create capman logo and add it to the top_right 
     ImageView imageCapman = new ImageView(
       new Image(MainWindow.class.getResourceAsStream("Resources/Capman.png"))); 


// Login button actionHandler, make it do login and edit root layout. 
     buttonLogin.setOnAction(new EventHandler<ActionEvent>() { 
      @Override 
      public void handle(ActionEvent e) { 
       grid.setGridLinesVisible(!grid.isGridLinesVisible()); 
      } 
     }); 

     return grid; 
    } 

在此先感謝, 賈斯珀。

+0

我一直試圖添加ColumConstraints之前添加2列的節點,然後設置每列maxWidth這似乎並沒有影響第二列壽,它也是第一列的問題。 :-( – Taerus

+0

我也很好奇你的問題,也許下面的地址可以給你帶來一些幫助:http://docs.oracle.com/javafx/2/api/javafx/scene/layout/ColumnConstraints.html http:/ /www.javacodegeeks.com/2012/07/javafx-20-layout-panes-gridpane.html – Loa

+0

感謝您的回覆,我通過閱讀GridPane靜態方法使用第二個鏈接獲得了成功。我使用GridPane.setMargin()來完成它;雖然它並不完全以這種方式居中我的網格,但也許我可以從外部添加一個邊距以及將它推到中心 – Taerus

回答

1

感謝Loa我已經通過使用靜態GridPane方法解決了這個問題,並通過這種方式將Margin添加到某些節點。下面是他/她分享的鏈接: http://www.javacodegeeks.com/2012/07/javafx-20-layout-panes-gridpane.html

雖然網格沒有完全居中現在因爲在第2列一些空白它也許能微胖,使其中心對電網的另一側的:-)我不知道這是否是解決問題的正確方法,但它適用於我:-P

編輯:確實通過在帶邊距的節點的另一側添加額外的填充來使其居中。

+0

有趣的事實:我在(0,0)並且突然第二列在底部圖像的末尾完全停止移動對保證金和填充的需求。我真的非常驚訝:-P – Taerus

+0

好,歡迎你。很高興幫助你。祝你的項目好運。 – Loa