使JFrame透明在Mac上滚动

use*_*036 6 java macos swing scroll transparent

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

小智 1

如此类似线程中所建议的,请尝试:

getRootPane().putClientProperty("apple.awt.draggableWindowBackground", Boolean.FALSE);
Run Code Online (Sandbox Code Playgroud)

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

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