2013-10-15 2 views
3

Я новичок в Java Fx, используя Netbeans 7.3.1. Я экспериментирую с новыми вещами с Gridpane, и я просто хочу поместить Gridpane в другое положение, отличное от левого верхнего положения окна. root.getChildren().add(gridpane); добавляет gridpane в самый верхний левый угол окна. Как я могу поместить Gridpane в другое место окна без добавления нового дочернего элемента или root! Мой корень - это всего лишь группа, а текущий код просто перекрывает gridpane с Menubar .. Мой полный код это!Позиционирование Gridpane в Java Fx

public class Menu extends Application { 

@Override 
public void start(Stage primaryStage){ 
    Group root = new Group(); 
    Scene scene = new Scene(root, 300, 250); 
    primaryStage.setTitle("Hello World!"); 
    MenuBar menuBar = new MenuBar(); 
    javafx.scene.control.Menu m = new javafx.scene.control.Menu("File"); 
    m.getItems().add(new MenuItem("New")); 
    m.getItems().add(new SeparatorMenuItem()); 
    m.getItems().add(new MenuItem("Exit")); 
    menuBar.getMenus().add(m); 
    javafx.scene.control.Menu tools = new javafx.scene.control.Menu("Cameras"); 
    tools.getItems().add(CheckMenuItemBuilder.create() 
    .text("Show Camera 1") 
    .selected(false) 
    .build()); 
    menuBar.getMenus().add(tools); 
    root.getChildren().add(menuBar); 
    GridPane gridpane = new GridPane(); 
    gridpane.setPadding(new Insets(5)); 
    gridpane.setHgap(5); 
    gridpane.setVgap(5); 
    Label fNameLbl = new Label("First Name"); 
    TextField fNameFld = new TextField(); 
    Label lNameLbl = new Label("First Name"); 
    TextField lNameFld = new TextField(); 
    Button saveButt = new Button("Save"); 
    // First name label 
    GridPane.setHalignment(fNameLbl, HPos.RIGHT); 
    gridpane.add(fNameLbl, 0, 0); 
    // Last name label 
    GridPane.setHalignment(lNameLbl, HPos.RIGHT); 
    gridpane.add(lNameLbl, 0, 1); 
    // First name field 
    GridPane.setHalignment(fNameFld, HPos.LEFT); 
    gridpane.add(fNameFld, 1, 0); 
    // Last name field 
    GridPane.setHalignment(lNameFld, HPos.LEFT); 
    gridpane.add(lNameFld, 1, 1); 
    // Save button 
    GridPane.setHalignment(saveButt, HPos.RIGHT); 
    gridpane.add(saveButt, 1, 2); 
    root.getChildren().add(gridpane); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
} 
+0

Вместо простой группы в качестве корня вы можете использовать [одну из встроенных макетных панелей] (http://docs.oracle.com/javafx/2/layout/builtin_layouts.htm), например VBox , – assylias

+0

Благодарим вас за этот сайт! Это решение проблемы перекрытия! –

ответ

0

попробовать Scene Builder ... он используется для разработки JavaFX страниц ...

вы можете создать все ваши страницы в соответствии вам нужно.

0

Я не уверен, что он работает, но попробуйте использовать следующее: grid.setAlignment (Pos.CENTER); Центр можно заменить любым другим положением, насколько мне известно. Надеюсь, это поможет.