Để tạo được giao diện trong Java, trước tiên các bạn phải biết được LayoutManager trong Java, nó giống như là bản vẽ kỹ thuật cho một ngôi nhà.
- FlowLayout
- BoxLayout
- BorderLayout
- CardLayout
- GridBagLayout
- GridLayout
- GroupLayout
- SpringLayout
Trong phần 1 chúng ta sẽ học về FlowLayout
======================================================================
FlowLayout
======================================================================
FlowLayout cho phép add các control trên cùng một dòng, 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 control. 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. Bạn tưởng tượng rằng JPanel giống như cái thùng đựng đồ vật, từng đồ vật là các control ví dụ như trong thùng đựng đồ vật ta có thể đựng Sách, bút, giày, dép…Ta nên tạo JPanel để add các control vào JPanel để việc quản lý control được dễ dàng hơn.
Đoạn code dưới đây sẽ minh họa về FlowLayout, Tôi sẽ giải thích chi tiết từng dòng lệnh:
import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyFlowLayout extends JFrame{
private static final long serialVersionUID = 1L;
public MyFlowLayout(String title)
{
setTitle(title);
JPanel pnFlow=new JPanel();
pnFlow.setLayout(new FlowLayout());
pnFlow.setBackground(Color.PINK);
JButton btn1=new JButton(“FlowLayout”);
JButton btn2=new JButton(“Add các control”);
JButton btn3=new JButton(“Trên 1 dòng”);
JButton btn4=new JButton(“Hết chỗ chứa”);
JButton btn5=new JButton(“Thì xuống dòng”);
pnFlow.add(btn1);
pnFlow.add(btn2);
pnFlow.add(btn3);
pnFlow.add(btn4);
pnFlow.add(btn5);
Container con=getContentPane();
con.add(pnFlow);
}
public static void main(String[] args)
{
MyFlowLayout myUI=new MyFlowLayout(“Demo FlowLayout”);
myUI.setSize(600, 100);
myUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myUI.setLocationRelativeTo(null);
myUI.setVisible(true);
}
}
Khi chạy giao diện lên chúng ta sẽ thấy như hình bên dưới
Mặc định các control sẽ nằm trên cùng 1 dòng, nếu như không đủ chỗ chứa thì những control đó sẽ tự động rơi xuống dòng khác
Container con=getContentPane();
dùng để lấy lớp chứa của cửa sổ windowscon.add(pnFlow);
dùng để add lớp chứa JPanel vào cửa sổTrong hàm main bạn để ý:
myUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thiết lập sự kiện đóng cửa sổ windows khi người sử dụng click chọn vào dấu “X” ở góc phải trên cùng cửa sổmyUI.setLocationRelativeTo(null);
thiết lập cửa sổ xuất hiện ở giữa màn hình desktopmyUI.setVisible(true);
cho phép cửa sổ hiển thị ra.- Nếu muốn gán sự kiện click chuột cho button 5 thì bạn có nhiều cách gán sự kiện, Tôi sẽ hướng dẫn 1 cách:
ngay bên dưới dòng lệnh
JButton btn5=new JButton(“Thì xuống dòng”);
bạn thêm vào lệnh sau:btn5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, “Button 5 được click!”);
}
});
Ở đây đơn giản Tôi hiển thị 1 messagebox thông báo là “Button 5 được click!”
0 nhận xét:
Đăng nhận xét