Thiết lập layouts như thế nào? Component đầu tiên được thiết lập, nó sẽ sử dụng layout mặc định.. Layout mặc định của applet là FlowLayout Layout mặc định của Frame là BorderLayout
Trang 1Layout Managers
Bài 5
Trang 2Bài 05 2/ 24
Nội dung chính
Định nghĩa và chức năng của layout managers
Các kiểu Layouts
Ứng dụng của layout managers
Nội dung chi tiết các loại layouts:
Trang 4Bài 05 4/ 24
Các kiểu Layouts
AWT cung cấp một số lớp để quản lý layout
được gọi là layout managers.
Trang 5Thiết lập layouts như thế nào?
Component đầu tiên được thiết lập, nó sẽ sử
dụng layout mặc định.
Layout mặc định của applet là FlowLayout
Layout mặc định của Frame là BorderLayout
Tất cả components được đặt trong một
container và được sắp xếp theo layout thiết
lập cho nó.
Một layout manager có thể được thiết lập nhờ
method setLayout ()
Trang 6Bài 05 6/ 24
FlowLayout Manager
Layout mặc định của applet và panel
Các Components được sắp xếp theo thứ từ góc trái trên xuống góc phải dưới.
Constructors của FlowLayout là :
FlowLayout mylayout = new FlowLayout();
FlowLayout exLayout = new
FlowLayout(FlowLayout.LEFT);
// alignment specified
Trang 7FlowLayout Manager Contd…
Flow Layout – Left and Right Aligned
Trang 8lblName = new Label("Name: ");
txtName = new TextField(20);
btnOk = new Button("Ok");
Trang 9BorderLayout Manager
Là layout mặc định cho Window, Frame và
Dialog
Các component có thể được đặt vào các vùng
North, South, East, West, or Center của container
sử dụng BorderLayout
Trang 10Bài 05 10/ 24
BorderLayout Manager
Các hằng số xác định vùng để đặt
component vào container:
PAGE_START: đỉnh trên container theo chiều dọc
LINE_END: bên phải container theo chiều ngang
PAGE_END: đỉnh dưới container theo chiều dọc
LINE_START : bên trái container theo chiều ngang
LINE_CENTER: center của container
Trang 11Button best = new Button("EAST");
Button bwest = new Button("WEST");
Button bnorth = new Button("NORTH");
Button bsouth = new Button("SOUTH");
Button bcentre = new Button("CENTER");
Trang 12 Constructor của GridLayout:
GridLayout g1= new GridLayout(4,3);
(khởi tạo một grid 4 hàng, 3 cột)
Trang 13Hình ảnh của GridLayout
Trang 14Bài 05 14/ 24
GridBagLayout Manager
Các component thường có kích thước khác
nhau
Components được sắp xếp theo rows, cols
Thứ tự các comp có thể ko theo chiều
Trang 15GridBagLayout Manager
Để sử dụng Gridbaglayout ta phải thiết lập
thông tin về size và layout của mỗi
component
Lớp GridBagConstraints chứa đựng tất
cả các thông tin được GridBagLayout yêu
cầu để cung cấp vị trí, kích thước của
component
Trang 16Bài 05 16/ 24
GridBagLayout Manager
Các thuộc tính của GridBagConstraints :
weightx, weighty: xác định khoảng trống trong
GridbagLayout
gridwidth, gridheight: Xác định số ô theo chiều
ngang, dọc để hiển thị component
ipadx, ipady: lượng làm thay đổi chiều cao, chiều rộng tối thiểu, nó sẽ thêm 2*ipadx vào chiều rộng tối thiểu và
2*ipady vào chiều cao
Trang 17GridBagLayout Manager
Các thuộc tính của GridBagConstraints:
Anchor: vị trí của comp trong cell (NORTH, WEST,EAST,
SOUTH…)
gridx, gridy: vị trí cell sẽ đặt comp
Fill: cách mà một thành phần đc bố trí vào cell ntn nếu
cell lớn hơn comp
Insets: xác định khoảng cách top, bottom, left và right giữa
các comp
Trang 18//doi tuong gridbagconstraints de quan ly cac rang buoc ->gan vao gb
ObjTa = new TextArea("Textarea ",5,10);
ObjTf = new TextField("enter your name");
butta = new Button("TextArea");
buttf = new Button("TextField");
cbg = new CheckboxGroup();
cbbold = new Checkbox("Bold",cbg,false);
cbitalic = new Checkbox("Italic",cbg,false);
cbplain = new Checkbox("Plain",cbg,false);
cbboth = new Checkbox("Bold/Italic",cbg,true);
Trang 20Bài 05 20/ 24
Example
Output
Trang 21CardLayout Manager
Có thể lưu trữ như một ngăn xếp các layouts
Mỗi layout giống như một card trong thân
Card thường là đối tượng Panel
Sử dụng khi chúng ta muốn dùng nhiều panel
mà mỗi panel chỉ hiển thị một thời điểm
Main panel sẽ chứa đựng các panel này
Trang 22reading = new Button("Reading");
playing = new Button ("Games");
add(reading);
add(playing);
cardlo = new CardLayout();
hobcards = new Panel(); // main panel // sets the layout of the main panel to card layout hobcards.setLayout(cardlo);
cbg = new CheckboxGroup();
nov = new Checkbox("NOVELS", cbg, true);
fic = new Checkbox("FICTIONS", cbg, false);
autobio = new Checkbox("AUTOBIOGRAPHY", cbg, false);
story = new Checkbox("STORIES", cbg, false);
swim = new Checkbox("SWIMMING", false);
runn = new Checkbox("RUNNING", false);
Trang 23// adding radio buttons to the reading card panel – first deck
Panel readpan = new Panel();
// adding checkbox to the playing card panel – Second deck
Panel playpan = new Panel();
cardlo.show(hobcards,"READING" );
} else {
cardlo.show(hobcards,"PLAYING");
Trang 24Bài 05 24/ 24
Example (Output)
Output