如何在Java Swing中重叠面板?

时间:2014-11-07 07:51:09

标签: java swing overlay layout-manager

我的应用程序中有一个屏幕。屏幕布局显示在附加的图像文件中。enter image description here

我必须在 Panel1111 中添加最多5个标签。但是,当我尝试在 Panel1111 中添加标签时, Panel11 调整大小, Panel12 向下移动以为 Panel11 。

我想在Panel12上重叠Panel1111的内容。

我怎样才能实现它?

布局详情:

  1. Panel1:BorderLayout
  2. Panel11:OverLayLayout
  3. Panel111:GridBagLayout

2 个答案:

答案 0 :(得分:1)

使用JLayeredPane。转到Oracle Java网站,阅读教程:How to Use Layered Panes

答案 1 :(得分:1)

默认情况下,Java的布局管理器会尝试显示其中的所有信息。 如果你说你想要两个面板重叠,这实质上意味着下面的一个不能完全看到,也不能与隐藏/重叠部分交互。然后,这部分面板再也没有意义了。所以你应该重新考虑你的GUI。

如果您希望它仅在特定时间重叠,并且用户可以定义何时应该重叠,何时不应该重叠,那么您需要根本不使用布局管理器来手动处理,而是定位元素你自己。 Oracle提供了一些提示:http://docs.oracle.com/javase/tutorial/uiswing/layout/none.html。 最后,您可能最终编写自己的自定义布局管理器来处理面板的大小调整。

注意:只能手动管理Panel 1的布局。其他面板可能会再次由LayoutManager处理。