使JFrame透明在Mac上滚动

时间:2012-04-04 14:04:50

标签: java macos swing scroll transparent

我使用JFrame设置了透明的未修饰AWTUtilities.setWindowOpaque(this, false)。在JFrame,我有一个滚动窗格;它在Windows上完美运行。在Mac上,整个JFrame是可拖动的;所以当我尝试通过在滚动条上单击并按住鼠标滚动滚动窗格时,整个框架移动而不是滚动条拇指。我还尝试使用setBackground(new Color(0,0,0,0))代替setWindowOpaque(),但它也有同样的问题。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

正如this similar thread中所述,请尝试:

getRootPane().putClientProperty("apple.awt.draggableWindowBackground", Boolean.FALSE);

如果您选择使用此选项,滚动条将可用,窗口将不会拖动。但是,您可能会遇到不可移动的窗口,除非您添加MouseMotionListener并使用mouseDragged()之类的调用在frame.setLocation()方法中移动窗口。

相反,您可以强制用户单击滚动条的箭头按钮,而不是拖动滚动条本身...但这不是我见过的最友好的用户理念。