Java: Cách tạo ảnh nền cho jFrame Form

Mình thấy có rất nhiều bài viết về chèn ảnh làm ảnh nền trên jFrame nhưng việc chèn ảnh trong jFrame Form thì không có ai bàn đến. Mình vừa tìm thấy một cách chèn ảnh trong jFrame Form rất hiệu quả, đó là sử dụng jLabel.

Việc tạo Project và jFrame Form thì mình không nói nữa vì nó cơ bản quá rồi. Ở đây mình tạo ra 1 Project có tên TutorialBackground như hình vẽ.

Right Click vào package Tutorial, chọn New> Java package… để tạo ra một thư mục new package chứa hình ảnh.

 

Trong cửa sổ Design, Right Click tại jFrame chọn Set Layout > Grid Bag Layout.

 

 

Trong cửa sổ Palette, chọn jPanel rồi kéo thả vào jFrame. Nhớ bỏ chọn thuộc tính Opaque của jPanel trong cửa sổ Properties.

Tiếp theo, chọn jLabel rồi kéo thả vào jFrame. Nhớ rằng jLabel không nằm trong jPanel.

Chọn jLabel. Trong cửa sổ Properties, chọn thuộc tính icon. Click vào nút … để hiện ra cửa sổ icon.

 

Trong cửa sổ icon, nhấn chọn nút Import to Project… dể chọn một hình ảnh bất kỳ làm ảnh nền. Ở đây mình chọn file ảnh gemini.jpg. Sau đó nhấn Next.

 

Ở bước đây ta chọn thư mục để chứa hình ảnh vừa chọn. Chúng ta sẽ chọn thư mục new package (chính là cái new package ta tạo lúc đầu) trong project để chứa ảnh. Sau đó nhấn Finish.

 

Trong cửa sổ icon, nhấn OK để đóng cửa sổ lại. Lúc này, hình ảnh sẽ được hiển thị trên jLabel1.

Click chọn jLabel1. Trong cửa sổ Properties, ta xóa bỏ dòng “jLabel1” của thuộc tính Text, tức là không hiển thị chữ “jLabel1” trên jLabel nữa.

 

Trong cửa sổ Navigator (phía dưới bên trái màn hình), Right Click vào jPanel1 và chọn Properties.

Trong cửa sổ Properties, ta chọn như hình vẽ dưới.

 

Nhấn Close để thoát ra ngoài.

Vẫn trong cửa sổ Navigator, ta Right Click vào jLabel1 và chọn Properties. Chọn tương tự như trên.

 

Nhấn Close.

Như vậy, hình ảnh đã bao phủ toàn bộ jFrame như 1 ảnh nền.
Lúc này, ta có thể đặt bất kỳ Components nào lên trên hình vẽ. Ví dụ mình sẽ kéo thả jTextField và jButton vào jFrame. Nhấn shift+F6 thử xem.

 

 

 

 

 

 

 

 

 

Nguồn: congdongjava.com