2011-07-12 36 views
8

Làm cách nào để làm cho JFrame trong suốt? Tôi muốn làm cho JFrame của tôi trong suốt. Người dùng sẽ thấy nền khi JFrame của tôi ở trên cùng.Làm cách nào để làm cho JFrame trong suốt?

+0

thể trùng lặp của [nền JFrame Transparent] (http://stackoverflow.com/questions/2533650/transparent-jframe-background) –

+0

Một hướng dẫn dễ dàng - https://www.youtube.com/watch?v=zecGJfNHPWo – m4heshd

Trả lời

9

Nếu bạn không có bất kỳ phản đối nào khi sử dụng các lớp API bị hạn chế thì bạn có thể làm điều này với phương thức AWTUtilities lớp và setWindowOpacity() của lớp đó. Herehere là hướng dẫn về cách sử dụng? Và here là phiên bản sử dụng quyền truy cập gốc Java.

+0

void tĩnh công cộng chính (String args []) { java.awt.EventQueue.invo keLater (Runnable mới() { chạy void công khai() { javax.swing.JFrame fr = new NewJFrame(); com.sun.awt.AWTUtilities.setWindowOpacity (fr, 0.7f); fr.setVisible (true); } }); } –

+0

Bạn có thể đăng mã của mình làm câu trả lời. –

+0

Tôi không muốn làm điều đó vì nó chỉ có nghĩa là để nâng cao câu trả lời của bạn ... Không biết làm thế nào để định dạng mã trong một bình luận. –

11

Tôi đã tìm thấy một giải pháp khác.

Đặt màu nền của khung hình của bạn để

// Set the frame background color to a transparent color 
yourFrameHere.setBackground(new Color(0, 0, 0, 0)); 

Và hãy nhớ để thiết lập opacity tắt của ContentPane (JPanel của bạn hoặc một thành phần khác)

// turn off opacity of the content pane 
yourContentPaneHere.setOpaque(false); 
+0

Tôi không thấy phương thức 'setOpaque()'. – smwikipedia

+0

Nó là một phương pháp của JComponent lớp trừu tượng. http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setOpaque (boolean) Vì vậy, mọi JPanel và các thành phần khác đều có phương pháp này. – drzymala

+0

Điều này là tốt nhất. Con đường để đi! – Zizouz212

Các vấn đề liên quan