如何在编码期间隐藏其他面板或窗格

时间:2013-06-21 15:37:25

标签: java eclipse windowbuilder

使用Eclipse Juno for Java&的WindowBuilder

我有三个相同大小的面板,彼此叠加 - 它们有不同的小部件。在编码过程中,它们都会显示和混乱我正在做的事情。

我可以根据需要在运行时显示和隐藏它们但是,我想只显示我在上工作的那个在拖放小部件时。我尝试过使用不同的面板和窗格类型(选项卡,分层......)并选择不透明,但没有任何隐藏它们。

如何在编码过程中隐藏其他(窗格,面板等)?

2 个答案:

答案 0 :(得分:0)

我有同样的问题。除其他原因外,我的解决方案是为每个视图创建单独的类。所以我的框架将是它自己的类,它可能有一个TabbedPanel(或其他任何名称),然后我会为该选项卡面板上的每个选项卡创建一个新类。每个课程都会延长JPanel,所以我可以把它放在那里。这样,你的gui设计不仅不会混乱,而且你的代码逻辑被分成单独的文件,无论如何都可能属于它们。

答案 1 :(得分:0)

[已解决] 回答我自己的问题。 它可能不是完美的或最好的/正确的方式,但它有效!

WindowBuilder想要包围其中的其他面板/窗口小部件,因此,你必须使用opaque,Order>向前/向后然后设置所需的边界来欺骗它(所有面板大小和边界可以相等,并且在小部件拖放和运行时都会很好地覆盖。

以下是如何使用3-Panel示例(注意:WindowBuilder有缺陷/不一致,我经常需要从gui中选择项目,而不是在组件树中 EM>)。

  1. 创建您的第一个面板。添加小部件和边框。
  2. 创建第二个面板(您要在第一个面板上叠加的面板)。第二个面板必须不完全在第一个面板内 - 必须延伸到第一个面板的边缘之外(部分面板可以在第一个面板内)。由于上面提到的“环绕声”,这需要一些试验。使用shift键停止捕捉。
  3. 从组件树中选择gui中的顶部面板 NOT ,然后切换Opaque属性。树中的顶部面板(第一个或第二个)是您设置为不透明和工作的面板。
  4. 添加另一个面板并重复此过程。
  5. 根据需要获取小部件/ etc后,使用属性Bounds将它们设置为完全相同或根据需要。 之后,只要您不通过拖动移动面板,它就会保持不被其他面板包围。如果您通过拖动移动,它可能会设置为环绕...
  6. 我现在已经完成了十几次这样做并且它始终如一。

    以下是3个面板重叠,未包围且不透明的镜头,因此显示小部件混乱

    enter image description here

    下面是设置边界(而不是受限)之后的镜头。不透明和订单尚未设定:

    enter image description here

    下面是一个设置了边界且面板3向前移动且不透明设置的镜头:

    enter image description here

    以下是设置了边界且面板2向前移动且不透明设置的镜头:

    enter image description here

    ......等等... 现在,您可以在前面订购的面板上工作,当然,您可以在代码中使用setVisible ......