6

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

4

1 回答 1

1

正如在这个类似的线程中所建议的,尝试:

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

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

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

于 2012-07-23T07:27:29.147 回答