Lớp FlowLayout trong Java Swing Lớp FlowLayout được sử dụng để sắp xếp các thành phần trong một line, line sau nối tiếp line trước trong một luồng từ trái qua phải left-to-right flow..
Trang 1Lớp FlowLayout trong Java Swing
Lớp FlowLayout được sử dụng để sắp xếp các thành phần trong một line, line sau nối tiếp line
trước (trong một luồng từ trái qua phải left-to-right flow) Nó là Layout mặc định của applet hoặc panel Cú pháp để khai báo lớp java.awt.FlowLayout là:
public class FlowLayout
extends Object
implements LayoutManager, Serializable
Lớp này kế thừa các phương thức từ các lớp sau:
java.lang.Object
Lớp FlowLayout này bao gồm các trường sau:
static int CENTER: Giá trị này chỉ rằng mỗi hàng của các thành phần nên được căn chỉnh
vào giữa
static int LEADING: Giá trị này chỉ rằng mỗi hàng của các thành phần nên được căn chỉnh
theo cạnh chủ đạo (leading edge) theo hướng của container, ví dụ: căn chỉnh theo cạnh trái theo hướng left-to-right
static int LEFT: Giá trị này chỉ rằng mỗi hàng của các thành phần nên được căn chỉnh trái
static int RIGHT: Giá trị này chỉ rằng mỗi hàng của các thành phần nên được căn chỉnh
phải
static int TRAILING: Giá trị này chỉ rằng mỗi hàng của các thành phần nên được căn chỉnh
theo cạnh trailing edge theo hướng của container, ví dụ: căn chỉnh theo cạnh phải theo hướng left-to-right
Các constructor được sử dụng phổ biến của lớp
FlowLayout
FlowLayout(): tạo một Flow Layout với căn chỉnh trung tâm và một khoảng cách gap theo chiều
dọc và ngang là 5 đơn vị
Trang 2FlowLayout(int align): tạo một Flow Layout với căn chỉnh align đã cho và một khoảng cách gap
theo chiều dọc và ngang là 5 đơn vị
FlowLayout(int align, int hgap, int vgap): tạo một Flow Layout với căn chỉnh align đã cho và một
khoảng cách gap theo chiều dọc và ngang đã được xác định
import java.awt.*;
import javax.swing.*;
public class MyFlowLayout{
JFrame f;
MyFlowLayout(){
f=new JFrame();
JButton b1=new JButton("1");
JButton b2=new JButton("2");
JButton b3=new JButton("3");
JButton b4=new JButton("4");
JButton b5=new JButton("5");
f.add(b1);f add(b2);f add(b3);f add(b4);f add(b5);
f.setLayout(new FlowLayout(FlowLayout.RIGHT));
//thiet lap flow layout la can chinh phai
f.setSize(300,300);
f.setVisible(true);
}
public static void main(String[] args) {
new MyFlowLayout();
}
}
Trang 3Ví d ụ khác về FlowLayout
package com.vietjack.gui;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingLayoutDemo
private JFrame mainFrame;
private JLabel headerLabel;
private JLabel statusLabel;
private JPanel controlPanel;
private JLabel msglabel;
public SwingLayoutDemo(){
prepareGUI();
}
public static void main(String[] args){
SwingLayoutDemo swingLayoutDemo = new SwingLayoutDemo();
swingLayoutDemo.showFlowLayoutDemo();
}
private void prepareGUI(){
mainFrame = new JFrame("Vi du Java Swing");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout( , 1));
headerLabel = new JLabel("",JLabel.CENTER );
statusLabel = new JLabel("",JLabel.CENTER);
Trang 4mainFrame.addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent windowEvent){
System.exit( );
}
});
controlPanel = new JPanel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showFlowLayoutDemo(){
headerLabel.setText("Layout in action: FlowLayout");
JPanel panel = new JPanel();
panel.setBackground(Color.darkGray);
panel.setSize(200,200);
FlowLayout layout = new FlowLayout();
layout.setHgap(10);
layout.setVgap(10);
panel.setLayout(layout);
panel.add(new JButton("OK"));
panel.add(new JButton("Cancel"));
controlPanel.add(panel);
mainFrame.setVisible(true);
}
}