[JavaSwing] JLabel
[JavaSwing] JLabel Tháng Hai 17, 2014 nguyenvanquan7826 TUT Java swing 35 responses Nội dung Tạo JLabel đơn giản Đặt màu, màu nền cho JLabel JLabel thường được dùng để hiển thị text hoặc hình ảnh để tạo các chỉ dẫn, hướng ...
[JavaSwing] JLabel
Nội dung
Tạo JLabel đơn giản
Đặt màu, màu nền cho JLabel
JLabel thường được dùng để hiển thị text hoặc hình ảnh để tạo các chỉ dẫn, hướng dẫn trên giao diện người dùng.
Trong hình trên có sử dụng 4 JLabel để hướng dẫn người dùng nhập chính xác các thông tin cần thiết.
Ví dụ 1: Tạo các JLabel đơn giản
package nguyenvanquan7826.JLabel; import java.awt.GridLayout; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class MyJLabel extends JFrame { public MyJLabel() { // create frame setLayout(new GridLayout(1, 3, 5, 5)); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // create image Icon icon = new ImageIcon(getClass().getResource("7826.png")); // create three JLabel JLabel lb1 = new JLabel("label text only"); JLabel lb2 = new JLabel(icon); JLabel lb3 = new JLabel("icon and text", icon, JLabel.CENTER); lb3.setVerticalTextPosition(JLabel.BOTTOM); lb3.setHorizontalTextPosition(JLabel.CENTER); // add three label to frame add(lb1); add(lb2); add(lb3); // display frame pack(); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new MyJLabel(); } }
Kết quả ta được 3 JLabel như sau (Chú ý file 7826.png được đặt trong cùng package như hình bên)
Trong ví dụ trên chúng ta chú ý một số lệnh sau:
– setLayout(new GridLayout(1, 3, 5, 5)); Lệnh đặt GridLayout cho JFrame với 1 hàng, 3 cột, các cột và hàng cách nhau là 5px. Layout tạm thời hiểu như cách bố trí các đối tượng cho Jframe, nếu không có Layout thì các đối tượng sẽ bị đè lên nhau.
– Icon icon = new ImageIcon(); Lệnh đọc file ảnh tạo ảnh cho JLabel.
– Tiếp theo là 3 lệnh tạo 3 dạng JLabel. JLabel có tất cả 6 dạng khởi tạo:
+/ JLabel(): Tạo một thể hiện JLabel không có hình ảnh và một chuỗi rỗng
+/ JLabel(Icon image): Tạo một thể hiện JLabel chỉ định một hình ảnh
+/ JLabel(Icon image, int horizontalAlignment): Tạo một thể hiện JLabel chỉ định một hình ảnh và horizontal alignment
+/ JLabel(String text): Tạo một thể hiện JLabel chỉ định text
+/ JLabel(String text, Icon icon, int horizontalAlignment): Tạo một thể hiện JLabel chỉ định text, image và horizontal alignment
+/ JLabel(String text, int horizontalAlignment): Tạo một thể hiện JLabel chỉ định text, và horizontal alignment.
Trong lb3 chúng ta có 2 hàm setVerticalTextPosition và setHorizontalTextPosition để đặt vị trí của text theo chiều dọc (BOTTOM) và theo chiều ngang (CENTER). Đối với JLabel chỉ chứa text giống lb1 nếu muốn căn lề (trái, phải, giữa, …) ta dùng phương thức setHorizontalAlignment(int alignment).
Ví dụ 2: Đặt màu, màu nền cho JLabel
package nguyenvanquan7826.JLabel; import java.awt.Color; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; public class MyJlabelWithColor extends JFrame { public MyJlabelWithColor() { setLayout(new GridLayout(1, 2, 5, 5)); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 200); // create JLabel have text color red and background color green JLabel lb; lb = createJLabel("JLabel 1", Color.red, Color.green); add(lb); // create JLabel have text color blue and background color yellow lb = createJLabel("JLabel 2", Color.blue, Color.yellow); add(lb); // display JFrame setLocationRelativeTo(null); setVisible(true); } private JLabel createJLabel(String text, Color textColor, Color backgroundColor) { JLabel lb = new JLabel(text); // set align lb.setHorizontalAlignment(JLabel.CENTER); // set color lb.setForeground(textColor); // set background color lb.setOpaque(true); lb.setBackground(backgroundColor); return lb; } public static void main(String[] args) { new MyJlabelWithColor(); } }
Trong ví dụ này ta tạo hàm createJLabel trả về 1 JLabel với các đối số truyền vào lần lượt là text, color và brackground color của nó. Đáng lưu ý là để đặt được màu nền thì chúng ta cần đặt Opaque của JLabel là true (mặc định là false).
Tham khảo thêm: class JLabel