Trong bài viết này chúng ta sẽ tìm hiểu một số thao tác cơ bản để tạo ra một Jframe – nôm na đó là khung của ứng dụng.

Ví dụ 1: Tạo 1 frame 250×200 với tiêu đề “HelloWorld” hiển thị ở tọa độ (300, 200) trên màn hình.

package nguyenvanquan7826.helloworld;

import javax.swing.JFrame;

public class HelloWorld {
	public static void main(String[] args) {
		// create frame with title "HelloWorld"
		JFrame frame = new JFrame("HelloWorld");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// set Size and location frame
		frame.setSize(250, 200);
		frame.setLocation(300, 200);

		// display frame
		frame.setVisible(true);
	}
}

HelloWorld JavaSwing

Chúng ta có 4 hàm khởi tạo 1 JFrame:

JFrame() : Khởi tạo một frame mới invisible
JFrame(GraphicsConfiguration qc) : Tạo một Frame được chỉ định GraphicsConfiguration của màn hình thiết bị và tiêu đề trắng
JFrame(String title) : Tạo một frame mới invisibile với tiêu đề được chỉ định
JFrame(String title, GraphicsConfiguration qc) : Tạo một Frame được chỉ định tiêu đề và GraphicsConfiguration của màn hình thiết bị.

Trong ví dụ trên chúng ta sử dụng phuơng thức khởi tạo thứ 3 để đặt tiêu đề cho frame.

Hàm setDefaultCloseOperation(int operation): Đặt hành động mặc định sẽ xảy ra khi người dùng đóng JFrame. Nếu không dùng hàm này để đặt thì mặc định là HIDE_ON_CLOSE (1) – Khi đóng frame sẽ bị ẩn đi chứ hoàn toàn không đóng lại.
Các lựa chọn khác gồm:
DO_NOTHING_ON_CLOSE (0) – không làm gì cả
DISPOSE_ON_CLOSE (2) – Chỉ đóng frame đó, các frame khác liên quan sẽ không bị đóng.
EXIT_ON_CLOSE (3) – Đóng toàn bộ các frame liên quan tới nó.

Hàm setSize đặt kích thước cho frame.
Hàm setLocation đặt vị trí xuất hiện của frame trên màn hình. Nếu muốn frame xuất hiện chính giữa màn hình ta dùng hàm setLocationRelativeTo(null)
Hàm setVisible đặt chế độ hiển thị cho frame. Nếu không gọi hoặc đặt giá trị false cho hàm này thì frame sẽ không được hiển thị.

Ví dụ 2: Tạo 1 JFrame bằng cách kế thừa class JFrame.

package nguyenvanquan7826.helloworld;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class HelloWorld1 extends JFrame {
	public HelloWorld1() {
		// create frame with title "HelloWorld"
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("HelloWorld1");

		// set location
		setLocationRelativeTo(null);

		// add a JLabel
		add(new JLabel("HelloWorld"));

		// display frame
		pack();
		setVisible(true);
	}

	public static void main(String[] args) {
		new HelloWorld1();
	}
}

HelloWorld JavaSwing

Trong ví dụ 2 này class của chúng ta kế thừa lớp JFrame nên nó chính là 1 JFrame, vì vậy trong phương thức khởi tạo HelloWorld1 chúng ta có thể gọi ngay các phương thức của JFrame.
Ngoài ra trong ví dụ này còn dùng 2 phương thức add()pack(). Phương thức add giúp chúng ta thêm một đối tượng vào frame (ở đây là 1 JLabel), phương thức pack giúp frame có kích thước vừa đủ với nội dung của frame ngay cả khi chúng ta đặt kích thước frame lớn hơn.

Phương thức setResizable(boolean resizable) dùng để đặt frame có thể được thay đổi kích thước hay không.

Tham khảo thêm: class JFrame

Advertisements