swing学习 - GlassPanel学习

进来一直研究swing的内容,在看到jrootpanel的glasspanel的时候没有理解,今天看代码看到了这一部分,终于对于他的意义有所理解了。

rootpanel有GlassPanel和LayeredPanel组成,其中的LayeredPanel有位于地段的Menubar和下面的ContentPanel组成。

JRootPane 所使用的自定义 LayoutManager 可确保:

  1. glassPane 填充了 JRootPane 的整个可查看区域(边界 - insets)。
  2. layeredPane 填充了 JRootPane 的整个可查看区域。(边界 - insets)
  3. menuBar 位于 layeredPane 的上边缘。
  4. contentPane 填充了整个可查看区域,减去 menuBar(如果有)。

其中glassPane 位于所有窗格之上,以便能够截取鼠标移动。这样我们可以在dnd的过程中,在rootpanel中设定一个panel,这样就可以覆盖掉下面的所有的控件,等拖拽结束以后将glasspanel删除,其他的控件也就全部没有覆盖了,这样有什么好处呢,覆盖了以后,鼠标事件就完全被屏蔽了,避免以下不必要的鼠标监听处理,多有意义的事情啊。

 

这几天在开发一个office2007风格的界面,现在还没有成型了,上传一个图片,后续功能开发主要在属性面板,和制作可以拖拽和停靠在右边的窗口,先上传一个中间的产品。颜色和excel2007基本相同,因为直接是从他上面截取的颜色值。

 swing学习 - GlassPanel学习_第1张图片

你可能感兴趣的:(swing)