0

使用 Eclipse Juno for Java 和 WindowBuilder

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

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

如何在编码期间隐藏其他(窗格、面板...等)?

4

2 回答 2

0

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

于 2013-06-21T15:45:06.667 回答
0

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

WindowBuilder 想要包围在其范围内的其他面板/小部件,因此,您必须通过使用不透明来欺骗它,Order>forward/backward然后设置所需的边界(所有面板大小和边界都可以相等,并且在小部件期间都可以很好地覆盖拖放和运行时)。

这是使用 3-Panel 示例的方法(注意:WindowBuilder 有错误/不一致,我经常需要从 gui 中选择项目,而不是在组件树中)。

  1. 创建您的第一个面板。添加您的小部件和边框。
  2. 创建第二个面板(要覆盖在第一个面板上的那个)。第二个面板不能完全在第一个面板内 - 它必须超出第一个面板的边缘(它的一部分可以在第一个面板内)。由于上面提到的“环绕”,这需要一些试验。使用 shift 键停止捕捉。
  3. 在 gui 中选择顶部面板,而不是从组件树中选择,然后切换不透明属性。树中的顶部面板(第一个或第二个)是您设置为不透明并进行处理的面板。
  4. 添加另一个面板并重复该过程。
  5. 一旦您获得所需的小部件/等,请使用属性 Bounds 将它们全部设置为相同或根据需要。 之后,只要您不通过拖动来移动面板,它将保持不被其他面板包围。如果您通过拖动移动,它可能会被设置为环绕...

我现在已经这样做了十几次,并且一直有效。

下面是 3 个面板重叠、未环绕且不透明的照片,因此显示小部件杂乱无章

在此处输入图像描述

下面是设置边界(而不是包围)后的镜头。未设置不透明和顺序:

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

于 2013-06-22T23:39:32.203 回答