SỬ DỤNG LAYOUT MANAGER TRONG THIẾT KẾ GIAO DIỆN
Trang 1SỬ DỤNG LAYOUT MANAGER TRONG THIẾT KẾ GIAO DIỆN
Nhóm 3
Trang 2NỘI DUNG
Giới thiệu Chức năng của các Layout
Demo
Trang 3I GIỚI THIỆU
1. Layout manager là gì?
a. Layout: Cách bố trí các thành phần trên container, hay nói
cách khác là cách sắp xếp các thành phần vào các vị trí đặc biệt trong container Việc này được quản lý bởi LayoutManager
b. LayoutManager: Sắp xếp vị trí của các components một
cách tự động, thay vì xác định chính xác về vị trí và kích thước của các components trong container Nếu chúng ta không sử dụng LayoutManger thì các component cũng được sắp xếp theo LayoutManager mặc định
Trang 4I GIỚI THIỆU
1. Layout manager là gì?
c. Những hạn chế khi không sử dụng layout: Chúng ta
cũng có thể sắp xếp các component bằng tay, tuy nhiên nó gặp nhiều rắc rối:
Khó khăn trong việc xử lý nhiều component
Thường thì thông tin chiều rộng và chiều cao của component không được đưa ra khi sắp xếp chúng
Trang 5I GIỚI THIỆU
2. Phân loại các Layout manager
Các loại LayoutManager hổ trợ trong java bao gồm:
Trang 6II CÁC LOẠI LAYOUT MANAGER
1. BorderLayout
a. Giới thiệu
Trang 7II CÁC LOẠI LAYOUT MANAGER
1 BorderLayout
a Đặc điểm:
Sắp xếp các thành phần(component) vào 5 khu vực: East, West, North,
South và Center Mỗi khu vực chỉ có thể chứa một thành phần và mỗi
thành phần trong từng khu vực được xác định bởi các hằng số tương ứng:
NORTH, SOUTH, EAST, WEST và CENTER Nếu chỉ có container chỉ
chứa một component thì nó sẽ phủ kín container đó.
Là layout manager mặc định của Jframe.
Trang 8II CÁC LOẠI LAYOUT MANAGER
Trang 9II CÁC LOẠI LAYOUT MANAGER
1 BorderLayout
d Một số phương thức hay sử dụng
public void setHgap( int hgap)
public void setVgap( int vgap)
public Object getConstraints (Component comp )
public float getLayoutAlignmentX (Container parent )
public float getLayoutAlignmentY (Container parent )
public Component getLayoutComponent( Container target, Object constraints)
public Component getLayoutComponent( Object constraints)
Tham khảo thêm tại nguồn: http
://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html
Trang 10II CÁC LOẠI LAYOUT MANAGER
2 FlowLayout
a Đặc điểm:
Sắp xếp các components trên cùng một dòng từ góc trên bên trái đến
góc dưới bên phải của màn hình, khi nào hết chỗ chứa nó sẽ tự động xuống dòng, ta cũng có thể điều chỉnh hướng xuất hiện của components
Mặc định khi một JPanel được khởi tạo thì bản thân lớp chứa này sẽ có
kiểu Layout là FlowLayout
Trang 11II CÁC LOẠI LAYOUT MANAGER
2. FlowLayout
c. Hàm khởi tạo
public FlowLayout()
public FlowLayout(int align)
public FlowLayout(int align, int hgap, int vgap)
d. Một số phương thức thường dùng
public void addLayoutComponent(Component comp, Object
constraints)
Trang 12II CÁC LOẠI LAYOUT MANAGER
2. FlowLayout
d. Một số phương thức thường dùng
public int getAlignment
public void setAlignment()
public void setHgap(int hgap)
public void setVgap(int vgap)
public void getHgap()
Trang 13II CÁC LOẠI LAYOUT MANAGER
2. FlowLayout
d. Một số phương thức thường dùng
public void getVgap()
public void setAlignOnBaseline(Boolean alignOnBaseline)
public bolean getAlignOnBaseline()
Tham khảo thêm tại nguồn: http://
docs.oracle.com/javase/7/docs/api/java/awt/FlowLayout.html
Trang 14II CÁC LOẠI LAYOUT MANAGER
3. BoxLayout
a. Đặc điểm: Cho phép đặt nhiều components theo các dòng
và các cột liên tiếp nhau Trong BoxLayout thường dùng Jpanel để hiển thị và nó có thể chứa nhiều Jpanel khác nhau
Trang 15II CÁC LOẠI LAYOUT MANAGER
3. BoxLayout
c. Hàm khởi tạo
public BoxLayout(Container target, int axis)
d. Một số phương thức thường dùng
public final Container getTarget()
public final int getAxis()
public void invalidateLayout(Container target)
Trang 16II CÁC LOẠI LAYOUT MANAGER
3. BoxLayout
public void addLayoutComponent(String name, Component
comp)
public void removeLayoutComponent(Component comp)
public void addLayoutComponent(Component comp, Object
constraints)
public Demention preferredLayoutSize(Container target)
public Demention minimumLayoutSize(Container target)
Trang 17II CÁC LOẠI LAYOUT MANAGER
4. CardLayout
a. Đặc điểm: Cho phép bố trí các components thành từng lớp
như các quân bài trong một bộ bài Để chứa các components ta thường sử dụng các Jpanel Tại một thời điểm chỉ có một Jpanel được hiển thị
Trang 18II CÁC LOẠI LAYOUT MANAGER
Trang 19II CÁC LOẠI LAYOUT MANAGER
4. CardLayout
public void setHgap(int hgap)
public void setVgap(int vgap)
public void first(Component parent)
public float getLayoutAlignmentX(Container parent)
public float getLayoutAlignmentY(Container parent)
public void layoutContainer(Container parent)
Tham khảo thêm tại nguồn: http://
docs.oracle.com/javase/7/docs/api/java/awt/CardLayout.html
Trang 20II CÁC LOẠI LAYOUT MANAGER
5. GridLayout
a. Đặc điểm: Bố trí các components dưới dạng lưới, với các
dòng và các cột đều nhau, mỗi một khung lưới chỉ chứa một components duy nhất
Trang 21II CÁC LOẠI LAYOUT MANAGER
5. GridLayout
c. Hàm khởi tạo
public GridLayout()
public GridLayout(int rows, int cols)
public GridLayout(int rows, int cols, int hgap, int vgap)
d. Các phương thức thường dùng
public void addLayoutComponent(String name, Component
comp)
Trang 22II CÁC LOẠI LAYOUT MANAGER
5 GridLayout
d Các phương thức thường dùng
public void setHgap( int hgap)
public void setVgap( int vgap)
public int getColumns ()
public int getRows ()
public void setColumns (int cols)
Public void setRows (int rows)
public void layoutContainer( Container parent)
Tham khảo thêm tại: http://
docs.oracle.com/javase/7/docs/api/java/awt/GridLayout.html
Trang 23II CÁC LOẠI LAYOUT MANAGER
6. GridBagLayout
Cho phép đặt một component trên một số ô kề nhau theo cả hay chiều Nó hiệu quả nhưng phức tạp hơn các layout khác Các component trong GridBagLayout không cần có cùng kích thước.
Tương tự như GridLayout nhưng thứ tự đặt các component không theo nguyên tắc sắp xếp thì trái qua phải và từ trên xuống dưới, b n c n ạ ầ cung c p thông tin v kích th ấ ề ướ c và v trí c a m i thành ph n ị ủ ỗ ầ
public class GridBagLayout
extends Object
Trang 24II CÁC LOẠI LAYOUT MANAGER
Trang 25II CÁC LOẠI LAYOUT MANAGER
protected void arrangeGrid(Container parent)
protected void ArrangeGrid(Container parent)
Trang 26II CÁC LOẠI LAYOUT MANAGER
6. GridBagLayout
d. Các phương thức thường dùng
public GridBagConstraints getConstraints(Component
comp)
public Point location(int x, int y)
public void invalidateLayout(Container target)
Tham khảo thêm tại nguồn: http://
docs.oracle.com/javase/7/docs/api/java/awt/GridBagLayout.html
Trang 27II CÁC LOẠI LAYOUT MANAGER
7. Group layout
a Đặc điểm:
Thực hiện với chiều ngang và dọc riêng biệt Sự sắp xếp được định nghĩa độc lập với nhau, không cần phải quan tâm về kích thước theo chiều dọc khi xác định bố trí nằm ngang và ngược lại.
Sử dụng hai loại sắp xếp – tuần tự và song song, kết hợp với thành phần thứ bậc.
Thêm khoảng cách giữa các component một cách tự động, những khoảng cách này được tính toán dựa trên look-and-feel thực sự
Trang 28II CÁC LOẠI LAYOUT MANAGER
Tất cả các thành phần được lưu giữ kích thước mặc định của nó.
Không có sub-panel được sử dụng để xây dựng trong trường hợp này.
public class GroupLayout
extends Object
implements LayoutManager2
Trang 29II CÁC LOẠI LAYOUT MANAGER
Trang 30II CÁC LOẠI LAYOUT MANAGER
7. Group layout
d Các phương thức thường dùng
protected void adjustForGrivaty( GridBagConstraints
constraints, Rectangle r)
public GroupLayout.ParallelGroup createBaselineGroup( boolean
resizeable , boolean anchorBaselineToTop)
public GroupLayout.ParallelGroup createParallelGroup()
public GroupLayout.ParallelGroup
createParallelGroup( GroupLayout.Alignment alignment)
Trang 31II CÁC LOẠI LAYOUT MANAGER
public GroupLayout.SequentialGroup createSequentialGroup()
public boolean getAutoCreateGaps()
Tham khảo thêm tại nguồn:
http://docs.oracle.com/javase/7/docs/api/java/awt/GridBagLayout.ht ml
Trang 32II CÁC LOẠI LAYOUT MANAGER
Trang 33II CÁC LOẠI LAYOUT MANAGER
Trang 34II CÁC LOẠI LAYOUT MANAGER
8. Spring layout
d. Các phương thức thường dùng