2011-03-11 94 views
0

當我使用AWTUtilities.setWindowOpaque(this, false);使我的JFrames的背景透明時,您可以通過拖動窗口中的任何位置來更改我的JFrame的位置。我的問題是,我有我想用來拖放這個Frame的對象,但是當我嘗試拖動一個對象時,JFrame移動了,所以不可能把它放到其他地方。 有什麼辦法可以解決這個問題嗎?禁用全窗口拖動

順便說一句,我在Mac上使用Mac OS 10.6.6

感謝您的幫助!

+0

「有什麼辦法可以解決這個問題嗎?」什麼問題呢? – 2011-03-11 12:58:10

+0

我在這個JFrame上有可拖動的對象。但是,當JFrame移動時,當我嘗試拖動這些對象時,不可能將這些對象放在其他任何地方 – esanits 2011-03-11 13:14:20

回答

0

你應該在Windows上測試,因爲我認爲這是一個mac功能。通常,您可以在框架中的任意位置單擊以拖動應用程序。你的目標部署平臺是什麼? 也許你可以在其中放置另一個面板,並將其設置爲非模板。也許這會有所幫助?

+0

如果它完全透明(無面板),則無法拖動它。但是當它有一個面板(不完全透明)時,你可以拖動它。是的,這是一個mac「功能」/錯誤。 – esanits 2011-03-11 19:29:44

+0

我*希望*這是一個Mac功能,因爲我無法弄清楚如何讓我的工具欄的行爲如此。 – Trejkaz 2013-12-20 01:13:06

6

對不起,我的英語不好。 試試這個:

setUndecorated(true); 
AWTUtilities.setWindowOpaque(this, false); 
getRootPane().putClientProperty("apple.awt.draggableWindowBackground", Boolean.FALSE); 

默認情況下,setWindowOpaque功能設置此客戶端屬性爲true。但是這個客戶端屬性使得你的窗口中的每個組件都可以拖動。

現在您必須自己製作拖動代碼。

+0

爲什麼'Boolean.FALSE'與'false'相反? – HyperNeutrino 2015-07-29 23:23:22