4

我正在开发一个具有自定义外观的应用程序。对于 GUI 测试,我使用 FEST-Swing。目前,GUI 测试使用默认的 java 外观运行。正因为如此,一些测试失败了,但我应该认为这是 GUI 中的错误,还是使用我的自定义外观进行测试?

后期编辑:

谢谢安德鲁汤普森的快速回答。但我认为这个问题仍然存在,因为流程布局的工作方式。这是发生的情况的模型:

在此处输入图像描述

标准 LAF 使用的字体比我使用的字体大,这会导致其中一个按钮脱离布局。而且我不能使用 pack(),因为该容器有大小要求。如果您没有在该示例中调用 frame.pack(),我认为您会遇到同样的问题。

4

2 回答 2

5

一些按钮太大,不会在窗口中呈现.. 我应该认为这是 GUI 中的一个错误..

是的。似乎当前的 GUI 非常脆弱。有关适用于任何PLAF 的 GUI,请参阅嵌套布局示例。

于 2013-05-14T09:19:02.760 回答
1

您应该使用您的自定义外观进行测试!这不是 GUI 本身的错误。

标准 LAF 使用的字体比我使用的字体大,这会导致其中一个按钮脱离布局。而且我不能使用 pack(),因为该容器有大小要求。如果您没有在该示例中调用 frame.pack(),我认为您会遇到同样的问题。

您对容器有大小要求。这意味着使用标准 LAF,没有 LayoutManager 可以计算容器中组件的任何排列,因此它们都适合标准 LAF,因为正如您指出的那样,它们太大了。这意味着您不能有标准的 LAF 和尺寸要求。

只要您使用自定义 LAF 并在所有受支持的 OS 系统上使用此自定义 LAF 进行测试,并且没有测试失败,一切都很好。因此,只需在执行测试之前更改您的测试并切换到您的自定义 LAF。

如果您想在标准 LAF 中运行您的应用程序,您将不得不放宽大小要求,直到使用功能强大的 LayoutManager 正确显示所有内容。例如,使用 MigLayout,您可以方便地设置所有这些大小要求,最后仍然在 JFrame 上使用 pack()。

编辑:我同意 Andrew 的观点,即您应该批判性地审查尺寸要求的必要性。在许多情况下,这些要求并不是真正需要的,放弃它们可以大大减少布局中的“失败”。例如,您可能只指定容器的最小尺寸。

于 2013-05-14T10:27:55.183 回答