1. 程式人生 > >初識JavaFX(二)

初識JavaFX(二)

面板的佈局

          一個簡單的程式,其中部件在面板中按網格狀(grid)排列:

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class Program extends Application
{
    @Override
    public void start( Stage stage )
    {
	   Label firstLabel = new Label( "First Name" );
	   Label lastLabel = new Label( "Last Name" );
	   TextField firstField = new TextField();
	   TextField lastField = new TextField();
	   Button saveButton = new Button( "Save" );

	   GridPane pane = new GridPane();
	   pane.setPadding( new Insets( 5 ) );
	   pane.setHgap( 5 );
	   pane.setVgap( 5 );
	   
	   pane.add( firstLabel, 0, 0 );
	   pane.add( lastLabel, 0, 1 );
	   pane.add( firstField, 1, 0 );
	   pane.add( lastField, 1, 1 );
	   pane.add(saveButton, 1, 2 );
	   
	   pane.setHalignment( saveButton, HPos.RIGHT );
	   pane.setAlignment( Pos.CENTER );
	   
	   Scene scene = new Scene( pane, 400, 300 );
	   stage.setScene( scene );
	   stage.show();
    }
}
程式執行效果:

             可以看到,網格面板GridPane在程式視窗中居中顯示,實際上這是通過傳遞Pos.CENTER引數給GridPane物件的setAlignment()方法來實現的,這樣使得GridPane能將其包含的部件居中顯示。另外可以看到,在水平和垂直方向上,部件之間都留有間隔,這是通過GridPanesetHgap()setVgap()來實現的,其中,引數5表示部件之間的間隔為5個畫素。

         另外,注意到Save按鈕是右對齊的,預設情況下是左對齊,因此,這裡需要顯式通過GeidPane物件的setHalignment()方法,接受HPos.RIGHT

作為引數,用來設定Save按鈕右對齊。

         最後,GridPane物件的setPadding()方法用來設定邊角間隔,即是面板的內容與面板的頂部、底邊和側邊的間隔,這裡指定的間隔為5個畫素。

         需要注意的是,GridPaneadd()方法,第2個引數指定部件所在的,第3個引數指定部件所在的