首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减少Swing中JWebBrowser的重叠

减少Swing中JWebBrowser的重叠
EN

Stack Overflow用户
提问于 2012-07-23 19:46:33
回答 1查看 610关注 0票数 1

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-01 02:30:22

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

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

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

代码语言:javascript
复制
new JWebBrowser(NSComponentOptions.destroyOnFinalization(),
                NSComponentOptions.constrainVisibility(),
                NSComponentOptions.proxyComponentHierarchy())

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

因此,在构造过程中,调用以下代码:

代码语言:javascript
复制
webBrowser.setDoubleBuffered(true);
webBrowser.getNativeComponent().createBackBuffer();

然后,在web浏览器与任何类型的透明度或层一起使用之前,调用以下代码:

代码语言:javascript
复制
rects[0] = webBrowser.getBounds();
webBrowser.getNativeComponent().updateBackBuffer(rects);

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11611904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档