4

カスタムのルック アンド フィールを持つアプリケーションに取り組んでいます。GUI テストには、FEST-Swing を使用しています。現在、GUI テストはデフォルトの Java ルック アンド フィールで実行されています。このため、一部のテストが失敗していますが、これを GUI のバグと見なすか、カスタムのルック アンド フィールを使用してテストする必要がありますか?

後で編集:

アンドリュー・トンプソンさん、素早い回答ありがとうございます。しかし、フロー レイアウトが機能する方法のため、問題はまだ残っていると思います。何が起こるかのモックアップは次のとおりです。

ここに画像の説明を入力

標準の LAF は、私が使用しているフォントよりも大きなフォントを使用しているため、ボタンの 1 つがレイアウトからはみ出してしまいます。また、そのコンテナーにはサイズ要件があるため、pack() は使用できません。その例で frame.pack() を呼び出さなかった場合、同じ問題が発生すると思います。

4

2 に答える 2

1

カスタムのルック アンド フィールを使用してテストする必要があります。GUI 自体のバグではありません。

標準の LAF は、私が使用しているフォントよりも大きなフォントを使用しているため、ボタンの 1 つがレイアウトからはみ出してしまいます。また、そのコンテナーにはサイズ要件があるため、pack() は使用できません。その例で frame.pack() を呼び出さなかった場合、同じ問題が発生すると思います。

コンテナのサイズ要件があります。これは、標準の LAF では LayoutManager がコンテナー内のコンポーネントの配置を計算できないことを意味します。そのため、ご指摘のとおり大きすぎるため、すべてが標準の LAF に収まります。これは、標準の LAF とサイズ要件を満たすことができないことを意味します。

カスタム LAFのみを使用し、サポートされているすべての OS システムでこのカスタム LAF を使用してテストし、テストが失敗しない限り、すべて問題ありません。したがって、テストを実行する前に、テストを変更してカスタム LAF に切り替えるだけです。

アプリケーションを標準の LAF で実行したい場合は、有効な LayoutManager を使用してすべてが適切に表示されるまで、サイズ要件を緩和する必要があります。たとえば、MigLayout を使用すると、これらすべてのサイズ要件を簡単に設定でき、最後に JFrame で pack() を使用できます。

編集:サイズ要件の必要性を批判的に見直す必要があるというアンドリューに同意します。多くの場合、これらの要件は実際には必要ではなく、それらを削除すると、レイアウトの「失敗」が大幅に減少します。たとえば、コンテナの最小サイズを指定するだけかもしれません。

于 2013-05-14T10:27:55.183 に答える