2010-03-28 19 views
6

Có thể tạo một khung hình JFrame có nền trong suốt và vẽ một hình ảnh trên đó, vì vậy chỉ hình ảnh sẽ hiển thị mà không có viền hoặc nền?Nền JFrame trong suốt

Trả lời

9

Xem Translucent and Shaped Swing Windows bởi Kirill Grouchnikov.

+0

Liên kết giờ đã chết. Google đề xuất bài đăng trên blog này: http://www.pushing-pixels.org/2008/02/27/translucent-and-shaped-windows-in-core-java.html –

0

Có thể.

Nếu JFrame của bạn là một biến địa phương hoặc lĩnh vực:

myJFrame.setUndecorated(true); 

Nếu lớp học của bạn kéo dài JFrame:

setUndecorated(true); 
+1

đúng là vì jdk7, tính minh bạch chỉ được hỗ trợ cho khung chưa được trang trí. Làm thế nào để gọi phương pháp nên được kiến ​​thức cơ bản, mặc dù :-) – kleopatra

9

Vâng, nó có thể bằng nhiều cách. Đây là một trong số họ:

setUndecorated(true); 
setBackground(new Color(1.0f,1.0f,1.0f,0.5f)); 

phao thứ 4 (mà tôi đặt thành 0,5f) trong hàm tạo màu là kênh alpha. Nó có thể là 0,0f - 1,0f phụ thuộc vào độ trong suốt mà bạn muốn.

1

Bạn cũng nên làm cho khung nội dung trong suốt.

frame.setUndecorated(true); 
frame.getContentPane().setBackground(new Color(1.0f,1.0f,1.0f,0.0f)); 
frame.setBackground(new Color(1.0f,1.0f,1.0f,0.0f));