gpt4 book ai didi

java - 减少 Swing 中 JWebBrowser 的重叠

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:49 26 4
gpt4 key购买 nike

我正在开发基于Swing的应用程序。

我的问题是我使用 JWebBrowser我把一个放在可滚动面板中。当我向下滚动面板时,网络浏览器与应用程序的面板/框架重叠。

我该怎么做才能使浏览器不与面板重叠?

最佳答案

我在这里没有看到答案,所以作为一个经历过这条坎坷道路的人,我可以同情这些问题,并希望提供一些指导。

首先,JWebBrowser 是一个 AWT 重量级组件,如果没有一些干预,它在 Swing 中不能很好地发挥作用(因为它使用轻量级组件)。

像这样实例化 JWebBrowser 是友好 Swing 集成的第一步:

new JWebBrowser(NSComponentOptions.destroyOnFinalization(),
NSComponentOptions.constrainVisibility(),
NSComponentOptions.proxyComponentHierarchy())

单独的实例化应该可以防止浏览器与 Swing 轻量级组件重叠,但是,除非您执行一些额外的步骤,否则它不会像您期望的透明度或图层那样工作。

因此,在构建过程中,调用这些:

webBrowser.setDoubleBuffered(true);
webBrowser.getNativeComponent().createBackBuffer();

然后,在网络浏览器要与任何类型的透明度或图层一起使用之前,调用这些:

rects[0] = webBrowser.getBounds();
webBrowser.getNativeComponent().updateBackBuffer(rects);

这些调用将在使用组件之前重新绘制后台缓冲区,因此在使用时,它将与最新的后台缓冲区一起显示,并且此时看起来非常像常规的 Swing 组件。

所有这些都存在一些细微差别,但这是基础知识,应该足以让任何人开始使用它。

关于java - 减少 Swing 中 JWebBrowser 的重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11611904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com