禁用全窗口拖动

时间:2011-03-11 11:32:48

标签: java macos transparency drag

当我使用AWTUtilities.setWindowOpaque(this, false);使我的JFrames背景透明时,您可以通过将其拖动到窗口中的任何位置来更改我的JFrame的位置。我的问题是,我有想要用于拖放这个Frame的对象,但是当我试图拖动一个对象时JFrame移动它不可能在其他任何地方丢弃它。 有没有办法解决这个问题?

顺便说一句,我使用的是Mac OS 10.6.6

感谢您的帮助!

2 个答案:

答案 0 :(得分:6)

抱歉我的英语不好。 试试这个:

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

默认情况下,setWindowOpaque函数将此client属性设置为true。但是这个客户端属性使窗口中的每个组件都可以拖动。

现在你必须自己制作拖拽代码。

答案 1 :(得分:0)

你应该在Windows上测试,因为我认为这是一个mac功能。通常,您可以单击框架中的任意位置来拖动应用程序。你的目标部署平台是什么? 也许你可以在其中添加另一个面板并将其设置为非opague。也许这会有所帮助吗?