JavaFX BorderPane
2018-01-09 19:24 更新
					
        	            JavaFX教程 - JavaFX BorderPane
BorderPane布局顶,底,左,右或中心区域中的子节点。每个区域只能有一个节点。
BorderPane的顶部和底部区域允许可调整大小的节点占用所有可用宽度。
左边界区域和右边界区域占据顶部和底部边界之间的可用垂直空间。
默认情况下,所有边界区域尊重孩子们的首选宽度和高度。
放置在顶部,底部,左,右和中心区域中的节点的默认对齐方式如下:
- Top: Pos.TOP_LEFT
- Bottom: Pos.BOTTOM_LEFT
- Left: Pos.TOP_LEFT
- Right: Pos.TOP_RIGHT
- Center: Pos.CENTER
例子
将按钮添加到BorderPane
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
/*from w  ww  .ja va2 s  . com*/
public class Main extends Application {
  public static void main(String[] args) {
    Application.launch(args);
  }
  @Override
  public void start(Stage primaryStage) {
    primaryStage.setTitle("BorderPane Test");
    BorderPane bp = new BorderPane();
    bp.setPadding(new Insets(10, 20, 10, 20));
    Button btnTop = new Button("Top");
    bp.setTop(btnTop);
    Button btnLeft = new Button("Left");
    bp.setLeft(btnLeft);
    Button btnCenter = new Button("Center");
    bp.setCenter(btnCenter);
    Button btnRight = new Button("Right");
    bp.setRight(btnRight);
    Button btnBottom = new Button("Bottom");
    bp.setBottom(btnBottom);
    Scene scene = new Scene(bp, 300, 200);
    primaryStage.setScene(scene);
    primaryStage.show();
  }
}
上面的代码生成以下结果。
实施例2
将BorderPane宽度和高度与场景绑定
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
/*from  ww w .j a  v  a 2 s .  c o  m*/
public class Main extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Title");
        Group root = new Group();
        Scene scene = new Scene(root, 400, 250, Color.WHITE);
        MenuBar menuBar = new MenuBar();
        EventHandler<ActionEvent> action = changeTabPlacement();
        Menu menu = new Menu("Direction");
        MenuItem left = new MenuItem("Left");
        left.setOnAction(action);
        menu.getItems().add(left);
        MenuItem right = new MenuItem("Right");
        right.setOnAction(action);
        menu.getItems().add(right);
        MenuItem top = new MenuItem("Top");
        top.setOnAction(action);
        menu.getItems().add(top);
        MenuItem bottom = new MenuItem("Bottom");
        bottom.setOnAction(action);
        menu.getItems().add(bottom);
        menuBar.getMenus().add(menu);
        BorderPane borderPane = new BorderPane();
        borderPane.prefHeightProperty().bind(scene.heightProperty());
        borderPane.prefWidthProperty().bind(scene.widthProperty());
        
        borderPane.setTop(menuBar);
        
        root.getChildren().add(borderPane);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    private EventHandler<ActionEvent> changeTabPlacement() {
        return new EventHandler<ActionEvent>() {
            public void handle(ActionEvent event) {
                MenuItem mItem = (MenuItem) event.getSource();
                String side = mItem.getText();
                if ("left".equalsIgnoreCase(side)) {
                    System.out.println("left");
                } else if ("right".equalsIgnoreCase(side)) {
                    System.out.println("right");
                } else if ("top".equalsIgnoreCase(side)) {
                    System.out.println("top");
                } else if ("bottom".equalsIgnoreCase(side)) {
                    System.out.println("bottom");
                }
            }
        };
    }
}
上面的代码生成以下结果。
以上内容是否对您有帮助:
			
	    
        
 免费 AI IDE
 免费 AI IDE 
									 
			

 
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
更多建议: