2011-03-11 92 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