2012-07-13 41 views
0

我已经构建了一个简单的接口,填充了我的整个JFrame。我正在使用在互联网上发现的FinalGlassPane类版本here单独面板的Java Swing GlassPane功能?

这个玻璃窗格没有常规的事件侦听器,但它监视它的底层组件的AWTEvents。这样就可以实现界面的全部功能,并且我可以用一个AWTEvent处理程序响应全局鼠标移动坐标,并相应地绘制所有内容。一切都很好,但现在我需要在主JFrame中重复使用这个功能,每个功能都有自己的坐标空间和事件处理程序。我刚刚了解了JLayeredPane,但是想确保这个功能可以与它一起使用。 IE在顶部添加一个完全透明但可绘制的JPanel图层,使用它处理AWTEvents,并且仍然有底层事件正常触发。

编辑:我正在阅读有关在一个JDesktopPane中使用多个JInternalFrame(和相关的玻璃窗格)。我不认为JDesktopPane与布局管理器一起工作,所以我必须在需要时绝对定位/调整2帧,但这可能是最佳选择。 END EDIT

我想要做的最后一件事是为每个接口组件添加鼠标移动侦听器,并且必须转换为父面板坐标才能运行相同的方法。

如果必须,我可以继续监视完整的玻璃面板鼠标坐标,并找出如何从那里分支逻辑。自我包容和个性化会更好。作为最后一个警告,我想最终把它带给Android,但对android图形一无所知。如果没有分层面板功能,我几乎宁可实现它第一次和第一次更难,更便携的方式。

回答

3

这可以通过使用JXLayerJLayer如果您使用的是Java 7 在JXLayer/JLayer的一般功能优于玻璃面板来完成。

没有基于Swing/AWT的解决方案将在Android上工作 - 您必须在那里使用Android特定组件。