2013-05-14 44 views
4

我正在研究具有自定義外觀的應用程序。對於GUI測試,我使用FEST-Swing。 目前,GUI測試運行時使用默認的java外觀。正因爲如此,一些測試失敗了,但是我應該認爲這是GUI中的一個錯誤,還是使用我的自定義外觀進行測試?GUI測試應該以默認外觀運行嗎?

後來編輯:

謝謝安德魯湯姆森爲快速回答。但我認爲這個問題仍然存在,因爲流程佈局的工作方式。 下面是會發生什麼樣機:

enter image description here

標準LAF使用比我現在用的是一個更大的字體,這將導致按鈕走出佈局之一。而且我不能使用pack(),因爲這個容器有一個尺寸要求。如果你沒有在這個例子中調用frame.pack(),我想你會遇到同樣的問題。

+0

爲什麼測試(標準PLAF)失敗? – 2013-05-14 09:09:44

+0

由於某些按鈕太大,不會在窗口中呈現。我知道我可以讓他們通過改變佈局,但我不知道這是最好的解決方案 – 2013-05-14 09:13:36

+0

什麼是您的應用程序的目標平臺? – 2013-05-14 09:17:25

回答

5

一些按鈕太大而不能在窗口中得到呈現。我應該考慮這是在GUI中的錯誤..

是。看起來好像當前的GUI非常脆弱。有關在任何PLAF中工作的GUI,請參閱Nested Layout Example

+0

因此,我應該保持測試運行與默認的外觀和感覺,並更改佈局。謝謝! – 2013-05-14 09:42:46

+2

@negurici這個si在Oracle官方教程中有相當好的描述,當L&F改變時,JFrame.pack()是必需的,在JFrames大小被硬編碼的情況下,你運氣不佳... – mKorbel 2013-05-14 10:18:01

+1

*「但是問題I認爲仍然是「*同樣的問題,我已經提出了一個解決方案。 *「我無法使用pack(),因爲該容器的大小要求」*是的。包含組件的正確尺寸(具有適當的邊距和邊框)。該大小由'pack()'提供。什麼,你會建議'老闆'告訴你該框應該是多少個像素?如果是這樣,老闆是一個白癡,產品永遠是脆弱的。我無能爲力。 – 2013-05-14 10:27:58

1

您應該測試中使用自定義的外觀和感覺!這本身不是GUI中的錯誤。

標準LAF使用比我現在用的是一個更大的字體,這 將按鈕走出佈局之一。而且我不能使用pack(),因爲這個容器有一個尺寸要求。如果你在這個例子中沒有調用frame.pack(),我認爲你會有 相同的問題。

您對容器有尺寸要求。這意味着對於標準的LAF,LayoutManager不能計算容器中組件的任何排列,所以它們都適合標準的LAF,因爲您指出它們太大了。這意味着你不能擁有標準的LAF和尺寸要求。

只要您使用您的自定義LAF和測試與此自定義LAF在所有支持的OS系統,但沒有測試失敗一切正常。因此,在執行測試之前,只需更改測試並切換到您的自定義LAF。

如果您想要在標準LAF中運行您的應用程序,您必須放寬尺寸要求,直到使用有能力的LayoutManager正確顯示所有內容爲止。例如,使用MigLayout,您可以方便地設置所有這些尺寸要求,並最終仍然在JFrame上使用pack()。

編輯:我同意安德魯,你應該批判性地審查大小要求的需要。在許多情況下,這些要求並不是真正需要的,放下它們可以大大減少佈局的「失敗」。例如,您可能只需指定容器的最小大小。

相關問題