0

Swing のコンポーネントを使用して GUI を構築する Java で書かれたプログラムは、すべてのオペレーティング システムでまったく同じように表示されますか?

編集: このように質問させてください: Java を使用して、すべてのプラットフォームでまったく同じように表示されることが保証されている GUI を設計することは可能ですか?

4

4 に答える 4

4

正しく使用すれば、一般的な Swing コンポーネントはプラットフォームや L&F 間で快適に安定しますが、保証はありません。UI のデフォルトに不当に違反する誘惑は避けるべきです。この例はたくさんありますが、サイズに関する一般的な落とし穴については、こちらこちらで説明しています。テストは必須ですが、広く利用可能な仮想マシンによって労力が軽減されます。

于 2012-11-18T15:01:10.957 に答える
2

はい、Swing を使用し、プラットフォーム固有のコードを使用しない限り、そうです。

そうは言っても、彼らは「自然」とは感じません。SWTはそこに少し優れています

于 2012-11-18T11:32:00.643 に答える
2

かなりそうです。しかし、UIManager を使用すると、オペレーティング システムのテーマに基づいてテーマを決定できます。
例:

UIManager.LookAndFeelInfo looks[] = UIManager.getInstalledLookAndFeels();
    try{
        //0-Swing, 1-Mac, 2-?, 3-Windows, 4-Old Windows
        UIManager.setLookAndFeel(looks[3].getClassName());
    }catch(Exception e){
        System.out.println(e.getMessage());
    }
于 2012-11-18T11:22:10.217 に答える
1

簡単に言うと、swing はシステムのルック アンド フィールを使用するため、デフォルトでは見た目が異なりますが、オーバーライドすることができます (http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html)。この場合はアプリケーションです。すべてのプラットフォームで同じルック アンド フィールで同じように見えるか、または -Dswing.noxp=true のようないくつかのルック アンド フィール機能を無効にすることができます。

于 2012-11-18T11:20:57.253 に答える